条件当没有记录时显示列表大小1

时间:2010-12-11 08:00:40

标签: java hibernate

我对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);

帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

正如阿菲已经提到过的,这与预期完全一样。 Projections.sum 实际上是一个所谓的聚合投影,这意味着它将在所有返回的记录上进行聚合(如SQL中的)。因此,示例中的 Projections.sum 会计算所有返回记录中 amount 字段的总和(表示符合条件的所有记录)。即使没有符合您条件的记录,聚合也会计算总和,当然为0,因为没有什么要总结。因此,投影将始终返回记录,并且始终只有一条记录,尽管记录的数量符合您的标准。