Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, kas ir nosaukta vaicājums Hibernate un kā tas tiek piemērots?

sobes.tech AI

Atbilde no AI

Hibernate nosauktais vaicājums ir iepriekš definēts vaicājums (HQL vai SQL), kam ir piešķirts unikāls nosaukums un kuru var atkārtoti izmantot kodā. Šāds vaicājums parasti tiek deklarēts ar @NamedQuery anotācijām vai XML konfigurācijā.

Nosaukto vaicājumu priekšrocības:

  • Viena un tā pati vaicājuma atkārtota izmantošana dažādās vietās.
  • Centralizēta vaicājumu pārvaldība.
  • Iespēja pārbaudīt vaicājuma sintaksi, ielādējot lietotni.

Piemērs, kā deklarēt nosaukto vaicājumu ar anotāciju:

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

Kods izmantošanai:

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