我对hibernate标准有疑问。
当列表中没有记录时,我的列表大小为1.当我打印列表时,它显示为列表[null]。
我的代码:
final Double depositAmount = (Double)session.createCriteria(vardhanDep.class)
.add(Restrictions.eq("userDetByCrtbyUserid", userid))
.add(Restrictions.eq("delflag","0"))
.setProjection(Projections.sum("amount"))
.list().get(0);
帮我解决这个问题
答案 0 :(得分:2)
正如阿菲已经提到过的,这与预期完全一样。 Projections.sum 实际上是一个所谓的聚合投影,这意味着它将在所有返回的记录上进行聚合(如SQL中的组)。因此,示例中的 Projections.sum 会计算所有返回记录中 amount 字段的总和(表示符合条件的所有记录)。即使没有符合您条件的记录,聚合也会计算总和,当然为0,因为没有什么要总结。因此,投影将始终返回记录,并且始终只有一条记录,尽管记录的数量符合您的标准。