带有Hibernate的criteria.setProjection(Projections.rowCount())会产生意想不到的结果

时间:2012-03-14 09:13:25

标签: database hibernate criteria projection

我们正在为我们的应用程序使用hibernate 3.3并面对这个问题

Criteria criteria = getSession().createCriteria(table.class);

criteria.setProjection(Projections.rowCount());返回4行,其中3行的值为“0”,1位的值为正确值。

由于此问题,criteria.uniqueResult();会引发异常org.hibernate.NonUniqueResultException: query did not return a unique result: 4

任何帮助都将受到高度赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:1)

int count = getSession().createCriteria(table.class)
    .setProjection(Projections.rowCount())
    .criteria.uniqueResult<int>();

答案 1 :(得分:1)

我自己得到了理由!

有多个类(确切地说是3个)继承了我们在(“table”)上触发此查询的表。因此,因此我们的查询被激发到所有4个表。

解决了很多问题。

Wowww !!!真是一种解脱。 :)