【问题标题】:criteria.setProjection(Projections.rowCount()) with Hibernate produces unexpected result使用 Hibernate 的 criteria.setProjection(Projections.rowCount()) 会产生意外的结果
【发布时间】:2012-03-30 17:28:32
【问题描述】:

我们正在为我们的应用程序使用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

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 最糟糕的是,我们面临着与 HQL 相同的问题。 :(

标签: database hibernate criteria projection


【解决方案1】:

试试

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

【讨论】:

    【解决方案2】:

    我自己知道原因!

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

    解决了我们的很多问题。

    哇!!!这是何等的解脱。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多