我需要所有姓名为 <> null 的不同的人:
List<Criterion> conditions = new ArrayList<Criterion>();
conditions.add(Restrictions.ne("name", null));
Projection projection = Projections.distinct(Projections.property("name"));
List<People> result = dao.findByCriteria(conditions, projection);
在哪里:
public List<T> findByCriteria(List<Criterion> list, Projection projection) {
try {
Criteria criteria = getSession().createCriteria(entityClass);
if (list != null) {
for (int i = 0; i < list.size(); i++) {
criteria.add(list.get(i));
}
}
if (projection != null) {
criteria.setProjection(projection);
}
List result = criteria.list();
return result;
} catch (Exception e) {
// log
}
}
生成的查询是:
Hibernate: select distinct this_.name as y0_ from Mrdb this_ where this_.name<>?
但我没有结果!事实上,仅使用投影或仅使用标准列表查询工作正常,但使用两者都没有结果。
我错过了什么?
谢谢