Sobes.tech
Junior — Middle

Tudná elmagyarázni, mi az a névzett lekérdezés a Hibernate-ben, és hogyan alkalmazzák?

sobes.tech MI

Válasz az MI-től

A Hibernate-ben nevezett lekérdezés egy előre definiált (HQL vagy SQL) lekérdezés, amelyhez egy egyedi nevet rendeltek, és amely többször is felhasználható a kódban. Ilyen lekérdezést általában az @NamedQuery annotációkban vagy XML-konfigurációban deklarálnak.

A nevezett lekérdezések előnyei:

  • Ugyanazon lekérdezés többszöri újrafelhasználása különböző helyeken.
  • Központosított lekérdezéskezelés.
  • A lekérdezés szintaxisának ellenőrzése az alkalmazás betöltésekor.

Példa egy nevezett lekérdezés deklarálására annotációval:

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

Használat a kódban:

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