Junior — Middle
Môžete vysvetliť, čo sa rozumie použitím natívnych SQL dopytov v anotácii @Query v Hibernate?
sobes.tech AI
Odpoveď od AI
V Hibernate, anotácia @Query umožňuje písanie dotazov na získanie údajov. Predvolene je to HQL (Hibernate Query Language) — objektovo orientovaný jazyk dotazov. Ak však chcete použiť natívny SQL dotaz, môžete v @Query uviesť parameter nativeQuery = true.
To znamená, že dotaz bude vykonaný priamo ako SQL, bez transformácie Hibernate. Je to užitočné, keď je potrebné použiť špecifické funkcie databázy alebo zložité dotazy, ktoré je ťažké vyjadriť v HQL.
Príklad:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Tu je users názov tabuľky v databáze, nie názov entity. Tento dotaz bude vykonaný priamo v databáze.