我正在使用Hibernate Criteria API在Employee表上获取搜索结果。我正在创建与Employee相关的搜索字段的左连接。
Criteria criteria = session.createCriteria(Employee.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.createAlias("locations", "loc", Criteria.LEFT_JOIN);
criteria.createAlias("designations", "desig", Criteria.LEFT_JOIN);
criteria.createAlias("project", "ps", Criteria.LEFT_JOIN);
Junction disjunction = Restrictions.disjunction();
disjunction.add(Restrictions.like("loc.locationName", "%" + loc + "%"));
disjunction.add(Restrictions.like("desig.designation", "%" + fa + "%"));
disjunction.add(Restrictions.like("ps.project", "%" + fa + "%"));
criteria.add(disjunction);
从上面的代码中我得到了列表,但是一些员工可能有2个字段为null。我想要最顶层不是空字段的员工。这是正确的做法吗?
我在休眠中看到了关于NULLS LAST的这个问题:Hibernate order by with nulls last 这个问题谈到了在提出这个问题时未解决的HHH-465错误。但现在他们已经修好了。我找不到任何实现代码。任何帮助表示赞赏。 感谢。