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