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