Junior — Middle
How to perform native SQL queries within Hibernate?.
sobes.tech AI
Answer from AI
In Hibernate, the method createNativeQuery of the EntityManager or Session object is used to execute native SQL queries.
Example using EntityManager:
String sql = "SELECT * FROM users WHERE status = :status";
List<Object[]> results = entityManager.createNativeQuery(sql)
.setParameter("status", "ACTIVE")
.getResultList();
To get entity objects, you can specify the class:
List<User> users = entityManager.createNativeQuery(sql, User.class)
.setParameter("status", "ACTIVE")
.getResultList();
Similarly, in Hibernate Session:
List<User> users = session.createNativeQuery(sql, User.class)
.setParameter("status", "ACTIVE")
.getResultList();
Thus, native SQL queries allow executing arbitrary queries against the database, bypassing HQL or Criteria API.