Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, ko nozīmē izmantot native SQL vaicājumus @Query anotācijā Hibernate?

sobes.tech AI

Atbilde no AI

Hibernate, anotācija @Query ļauj rakstīt vaicājumus datu iegūšanai. Pēc noklusējuma tas ir HQL (Hibernate Query Language) — objektorientēts vaicājumu valoda. Tomēr, ja vēlaties izmantot nativu SQL vaicājumu, varat norādīt parametru nativeQuery = true @Query.

Tas nozīmē, ka vaicājums tiks izpildīts tieši kā SQL, bez Hibernate pārveidojuma. Tas ir noderīgi, ja nepieciešams izmantot specifiskas datu bāzes funkcijas vai sarežģītus vaicājumus, kurus ir grūti izteikt HQL.

Piemērs:

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

Šeit, users ir datu bāzes tabulas nosaukums, nevis entītijas nosaukums. Šis vaicājums tiks izpildīts tieši datu bāzē.