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