Sobes.tech
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.