如何在Java中执行HQL查询

时间:2012-01-08 12:12:03

标签: grails gorm

我想知道是否可以在Java代码中执行HQL查询。通常我会做类似

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

executeQuery方法是在运行时添加的,不能从Java代码中获得。

1 个答案:

答案 0 :(得分:2)

您需要访问SessionFactorySession。如果你有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();

如果您执行更新或删除操作,则必须执行此事务,对于简单选择,此事务是可选的。