Junior — Middle
Můžete vysvětlit, co se rozumí použitím nativních SQL dotazů v anotaci @Query v Hibernate?
sobes.tech AI
Odpověď od AI
V Hibernate umožňuje anotace @Query psaní dotazů pro získání dat. Ve výchozím nastavení je to HQL (Hibernate Query Language) — objektově orientovaný jazyk dotazů. Pokud však chcete použít nativní SQL dotaz, můžete v @Query uvést parametr nativeQuery = true.
To znamená, že dotaz bude proveden přímo jako SQL, bez přeměny Hibernate. To je užitečné, když je třeba použít funkce specifické pro databázi nebo složité dotazy, které je těžké vyjádřit v HQL.
Příklad:
@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);
Zde je users název tabulky v databázi, nikoli název entity. Tento dotaz bude proveden přímo v databázi.