Junior — Middle
102
Hibernate'da @Query anotasyonunda yerel SQL sorgularının kullanılmasıyla ne kastedildiğini açıklayabilir misiniz?
AI'dan gelen yanıt
sobes.tech yapay zeka
Hibernate'da, @Query anotasyonu, veri almak için sorgular yazmaya olanak tanır. Varsayılan olarak, bu HQL (Hibernate Query Language) — nesne yönelimli sorgu dilidir. Ancak, yerel SQL sorgusu kullanmak istiyorsanız, @Query içinde nativeQuery = true parametresini belirtebilirsiniz.
Bu, sorgunun doğrudan SQL olarak çalıştırılacağı anlamına gelir, Hibernate dönüşümü olmadan. Bu, veritabanına özgü fonksiyonlar veya HQL'de ifade edilmesi zor olan karmaşık sorgular kullanmanız gerektiğinde faydalıdır.
Örnek:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Burada, users veritabanındaki tablonun adıdır, varlık adını değil. Bu sorgu doğrudan veritabanında çalıştırılır.