Junior — Middle
Puteți explica ce înseamnă utilizarea interogărilor SQL native în adnotarea @Query din Hibernate?
sobes.tech AI
Răspuns de la AI
În Hibernate, adnotarea @Query permite scrierea de interogări pentru obținerea datelor. În mod implicit, aceasta este HQL (Hibernate Query Language) — un limbaj de interogare orientat pe obiecte. Cu toate acestea, dacă doriți să utilizați o interogare SQL nativă, puteți specifica parametrul nativeQuery = true în @Query.
Aceasta înseamnă că interogarea va fi executată direct ca SQL, fără transformare de către Hibernate. Este util atunci când trebuie să utilizați funcții specifice bazei de date sau interogări complexe dificil de exprimat în HQL.
Exemplu:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Aici, users este numele tabelului în bază de date, nu numele entității. Această interogare va fi executată direct în bază.