Sobes.tech
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.