Sobes.tech
Junior — Middle

Можете ли објаснити шта подразумева коришћење нативних SQL упита у аннотацији @Query у Hibernate-у?

sobes.tech АИ

Одговор од АИ

У Hibernate-у, анотација @Query омогућава писање упита за добијање података. По подразумеваној вредности, то је HQL (Hibernate Query Language) — објектно-оријентисани језик упита. Међутим, ако желите да користите нативни SQL упит, можете у @Query да наведете параметар nativeQuery = true.

То значи да ће упит бити извршен директно као SQL, без трансформације од стране Hibernate-а. Ово је корисно када треба користити функције специфичне за базу података или сложене упите које је тешко изразити у HQL.

Пример:

@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);

Овде, users је име табеле у бази, а не име ентитета. Овај упит ће бити извршен директно у бази.