我遇到了标准查询问题。Hibernate如何将Criteria转换为HQL?
在另一种方法中,我使用HQL查询来删除数据库中的一些对象。 该查询起作用。
在另一种方法中,实际上,Criteria查询是获取对象的。 当我得到对象时,它们不会同步到数据库。
所以 1.如何在roder中同步这个标准查询以获得REAL对象? 2.如果1是不可能的,我想变换条件查询HQL
这里我的条件查询:
final Criteria crit = session.createCriteria(ObjectDao.class);
if (clientName != null && clientName.length() > 0) {
crit.createAlias("objectType.client", "client");
crit.add(Restrictions.eq("client.name", clientName));
}
if (objectType != null && objectType.length() > 0) {
crit.createAlias("objectType", "objectType");
crit.add(Restrictions.eq("objectType.type", objectType));
}
final List<ObjectDao> ret = crit.list();
而且HQL转换后的查询其不工作
String hqlQuery = "select ObjectDao where objectType.client.name = :clientName";
Query query = session.createQuery(hqlQuery)
// .setParameter("objectList", objectType)
.setParameter("clientName", clientName);
final List<ObjectDao> ret2 = query.list();
谢谢!
您是否使用某种Hibernate二级缓存? – ssedano