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