Junior — Middle
Hibernate'da @Query annotatsiyasida native SQL so'rovlaridan foydalanishni nima anglatishini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Hibernate'da, @Query anotasyonu, ma'lumotlarni olish uchun so'rovlar yozishga imkon beradi. Standartda, bu HQL (Hibernate Query Language) — ob'ektga yo'naltirilgan so'rov tili. Ammo, agar siz nativ SQL so'rovini ishlatmoqchi bo'lsangiz, @Query ichida nativeQuery = true parametrini ko'rsatishingiz mumkin.
Bu, so'rov to'g'ridan-to'g'ri SQL sifatida bajarilishini anglatadi, Hibernate tomonidan o'zgartirilmasdan. Bu, ma'lumotlar bazasiga xos funksiyalar yoki HQLda ifoda qilish qiyin bo'lgan murakkab so'rovlar uchun foydalidir.
Misol:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Bu yerda, users ma'lumotlar bazasidagi jadval nomi, entitiy nomi emas. Bu so'rov to'g'ridan-to'g'ri bazada bajariladi.