Sobes.tech
Junior — Middle

Môžete vysvetliť, čo je pomenovaný dopyt v Hibernate a ako sa používa?

sobes.tech AI

Odpoveď od AI

V Hibernate je pomenovaná dopyt, ktorý je vopred definovaný (HQL alebo SQL), ktorému je pridelené jedinečné meno a ktorý je možné opakovane používať v kóde. Takýto dopyt sa zvyčajne deklaruje v anotáciách @NamedQuery alebo v XML konfigurácii.

Výhody pomenovaných dopytov:

  • Opakovanie toho istého dopytu na rôznych miestach.
  • Centralizované riadenie dopytov.
  • Možnosť overiť syntax dopytu pri načítaní aplikácie.

Príklad deklarácie pomenovaného dopytu pomocou anotácie:

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

Použitie v kóde:

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