Sobes.tech
Junior — Middle

Kunt u uitleggen wat wordt bedoeld met het gebruik van native SQL-query's in de @Query-annotatie in Hibernate?

sobes.tech AI

Antwoord van AI

In Hibernate maakt de annotatie @Query het mogelijk om queries te schrijven voor het ophalen van gegevens. Standaard is dit HQL (Hibernate Query Language) — een objectgeoriënteerde querytaal. Als je echter een native SQL-query wilt gebruiken, kun je de parameter nativeQuery = true aangeven in @Query.

Dit betekent dat de query direct als SQL wordt uitgevoerd, zonder transformatie door Hibernate. Dit is handig wanneer je specifieke functies van de database wilt gebruiken of complexe queries die moeilijk in HQL uit te drukken zijn.

Voorbeeld:

@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);

Hier is users de naam van de tabel in de database, niet de naam van de entiteit. Deze query wordt direct in de database uitgevoerd.