"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso executar consultas SQL nativas em repositórios de dados Spring?

Como posso executar consultas SQL nativas em repositórios de dados Spring?

Publicado em 2024-11-10
Navegar:633

How Can I Execute Native SQL Queries in Spring Data Repositories?

Execução de SQL nativa em repositórios de dados Spring

Spring Data JPA fornece a capacidade de executar consultas SQL nativas em um repositório de dados Spring usando o @ Anotação de consulta. Ao contrário das anotações @Query típicas, que operam em entidades, as consultas SQL nativas podem interagir diretamente com o banco de dados subjacente.

Para executar SQL nativo dentro de um método de repositório, defina o atributo nativeQuery da anotação @Query como verdadeiro. Por exemplo:

@Query(value = "SELECT * FROM MY_TABLE WHERE id = ?", nativeQuery = true)
List findByNativeSql(Long id);

O método acima executará a consulta SQL nativa "SELECT * FROM MY_TABLE WHERE id = ?" e mapeie os resultados para a classe Entity.

Além disso, Spring Data JPA suporta consultas nativas nomeadas, que são definidas no arquivo persistence.xml. Para usar uma consulta nativa nomeada, basta especificar seu nome na anotação @Query, como segue:

@Query("findByNativeSqlQuery")
List findByNativeSqlQuery(Long id);

Ao utilizar a anotação @Query com nativeQuery definida como true ou aproveitando consultas nativas nomeadas, os desenvolvedores podem integrar perfeitamente consultas SQL brutas em seus repositórios de dados Spring, permitindo maior flexibilidade e controle refinado sobre as operações do banco de dados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3