Как выполнить HQL-запрос в Java - PullRequest
1 голос
/ 08 января 2012

Мне было интересно, возможно ли выполнить запрос HQL, но в коде Java.Обычно я делаю что-то вроде

def result = Person.executeQuery('select and so on..')

, но метод executeQuery добавляется во время выполнения и недоступен из кода Java.

1 Ответ

2 голосов
/ 08 января 2012

Вам нужен доступ к SessionFactory или Session.Если у вас есть SessionFactory, это будет что-то вроде

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

Query query = session.createQuery("select and so on..");
// set parameter values, e.g.
// query.setString("name", "Matthias");
List result = query.list();

tx.commit();
session.close();

Транзакция необходима, если вы выполняете обновления или удаления, и необязательна для простого выбора.

...