Junior — Middle
Можете ли да обясните какво се разбира под използването на native SQL заявки в анотацията @Query в Hibernate?
sobes.tech AI
Отговор от AI
В Hibernate, анотацията @Query позволява да се пишат заявки за получаване на данни. По подразбиране това е HQL (Hibernate Query Language) — обектно-ориентиран език за заявки. Въпреки това, ако трябва да използвате нативна SQL заявка, можете да посочите параметъра nativeQuery = true в @Query.
Това означава, че заявката ще бъде изпълнена директно като SQL, без преобразуване от Hibernate. Това е полезно, когато трябва да използвате функции, специфични за базата данни, или сложни заявки, които е трудно да се изразят в HQL.
Пример:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Тук users е името на таблицата в базата данни, а не името на същността. Тази заявка ще бъде изпълнена директно в базата.