Sobes.tech
Junior — Middle
104

Ar galite paaiškinti, ką reiškia naudoti natūralias SQL užklausas @Query anotacijoje Hibernate?

Atsakymas iš AI

sobes.tech AI

Hibernate, @Query anotacija leidžia rašyti užklausas duomenims gauti. Pagal numatytuosius nustatymus tai yra HQL (Hibernate Query Language) — objektų orientuotas užklausų kalba. Tačiau, jei norite naudoti natūralią SQL užklausą, galite nurodyti parametrą nativeQuery = true @Query.

Tai reiškia, kad užklausa bus vykdoma tiesiogiai kaip SQL, be Hibernate perdirbimo. Tai naudinga, kai reikia naudoti specifines duomenų bazės funkcijas arba sudėtingas užklausas, kurias sunku išreikšti HQL.

Pavyzdys:

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

Čia, users yra duomenų bazės lentelės pavadinimas, o ne entiteto pavadinimas. Ši užklausa bus vykdoma tiesiogiai duomenų bazėje.