Sobes.tech
Junior — Middle

Pode explicar o que é uma consulta nomeada no Hibernate e como ela é aplicada?

sobes.tech IA

Resposta da IA

A consulta nomeada no Hibernate é uma consulta predefinida (HQL ou SQL) à qual é atribuído um nome único e que pode ser reutilizada várias vezes no código. Essa consulta geralmente é declarada nas anotações @NamedQuery ou na configuração XML.

Vantagens das consultas nomeadas:

  • Reutilização da mesma consulta em diferentes locais.
  • Gestão centralizada das consultas.
  • Possibilidade de verificar a sintaxe da consulta ao carregar a aplicação.

Exemplo de declaração de uma consulta nomeada usando uma anotação:

@Entity
@NamedQuery(
    name = "User.findByEmail",
    query = "FROM User u WHERE u.email = :email"
)
public class User {
    @Id
    private Long id;
    private String email;
    // getters e setters
}

Uso no código:

Query query = session.createNamedQuery("User.findByEmail");
query.setParameter("email", "example@mail.com");
User user = (User) query.uniqueResult();