Sobes.tech
Junior — Middle

Pode explicar o que se entende por usar consultas SQL nativas na anotação @Query no Hibernate?

sobes.tech IA

Resposta da IA

No Hibernate, a anotação @Query permite escrever consultas para obter dados. Por padrão, é HQL (Hibernate Query Language), uma linguagem de consulta orientada a objetos. No entanto, se precisar usar uma consulta SQL nativa, pode indicar o parâmetro nativeQuery = true em @Query.

Isto significa que a consulta será executada diretamente como SQL, sem transformação pelo Hibernate. Isto é útil quando precisa usar funções específicas do banco de dados ou consultas complexas difíceis de expressar em HQL.

Exemplo:

@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);

Aqui, users é o nome da tabela na base de dados, não o nome da entidade. A consulta será executada diretamente na base.