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 је име табеле у бази, а не име ентитета. Овај упит ће бити извршен директно у бази.