Junior — Middle
Hibernate-də @Query anotasyonunda yerli SQL sorğularının istifadəsi ilə nə nəzərdə tutulur, izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Hibernate-də, @Query annotasiyası məlumatların alınması üçün sorğular yazmağa imkan verir. Əsasən, bu HQL (Hibernate Query Language) — obyekt yönümlü sorğu dilidir. Ancaq, əgər yerli SQL sorğusu istifadə etmək istəyirsinizsə, @Query içində nativeQuery = true parametrini göstərə bilərsiniz.
Bu, sorğunun birbaşa SQL kimi icra olunacağı deməkdir, Hibernate tərəfindən çevrilmədən. Bu, verilənlər bazasına xas funksiyalar və ya HQL-də ifadə etmək çətin olan mürəkkəb sorğular üçün faydalıdır.
Nümunə:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Burada, users verilənlər bazasındakı cədvəlin adıdır, entitiy adını deyil. Bu sorğu birbaşa bazada icra olunacaq.