我是hibernate的新手,所以不确定这是否是预期的行为,无论如何:
Session session = (Session)entityManager.getDelegate();
Criteria criteria = session.createCriteria(myRequest.class);
criteria.add(Restrictions.eq("username", username));
criteria.setProjection(Projections.max("accesscount"));
List<myRequest> results = criteria.list();
返回的结果是一个非空列表,其中包含一个null元素。
我想不出为什么它应该以这种方式行事的任何理由,任何想法,如果这是预期的行为或我做错了什么?
系统处于休眠状态/ Syabse。
感谢。
答案 0 :(得分:3)
如果用户具有该访问权限列中具有非空值的用户名,则会感到惊讶。您的返回类型让人相信您正在尝试获取具有max accesscount的myRequest实例?这不是那个查询的作用。该查询等同于
select max(m.accesscount) from myRequest m where m.username = :username
它只是(试图)返回一个数字,而不是myRequest。