Sobes.tech
Junior — Middle
66

Можете объяснить, что такое именованный запрос в Hibernate и как он применяется?

Answer from AI

sobes.tech AI

Именованный запрос в Hibernate — это заранее определённый запрос (HQL или SQL), которому присвоено уникальное имя и который можно многократно использовать в коде. Такой запрос обычно объявляется в аннотациях @NamedQuery или в XML-конфигурации.

Преимущества именованных запросов:

  • Повторное использование одного и того же запроса в разных местах.
  • Централизованное управление запросами.
  • Возможность проверки синтаксиса запроса при загрузке приложения.

Пример объявления именованного запроса с использованием аннотации:

@Entity
@NamedQuery(
    name = "User.findByEmail",
    query = "FROM User u WHERE u.email = :email"
)
public class User {
    @Id
    private Long id;
    private String email;
    // геттеры и сеттеры
}

Использование в коде:

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