Sobes.tech
Junior — Middle

Puoi spiegare cosa si intende per l'uso di query SQL native nell'annotazione @Query in Hibernate?

sobes.tech AI

Risposta dell'AI

In Hibernate, l'annotazione @Query consente di scrivere query per recuperare dati. Per impostazione predefinita, si tratta di HQL (Hibernate Query Language), un linguaggio di query orientato agli oggetti. Tuttavia, se si desidera utilizzare una query SQL nativa, è possibile specificare il parametro nativeQuery = true in @Query.

Ciò significa che la query verrà eseguita direttamente come SQL, senza trasformazione da Hibernate. Questo è utile quando si devono usare funzioni specifiche del database o query complesse difficili da esprimere in HQL.

Esempio:

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

Qui, users è il nome della tabella nel database, non il nome dell'entità. Questa query verrà eseguita direttamente nel database.