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();