我想知道是否可以在Java代码中执行HQL查询。通常我会做类似
的事情def result = Person.executeQuery('select and so on..')
但executeQuery
方法是在运行时添加的,不能从Java代码中获得。
答案 0 :(得分:2)
您需要访问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();
如果您执行更新或删除操作,则必须执行此事务,对于简单选择,此事务是可选的。