由于我是Hibernate和DB设计的新手,因此我使用了一些剩余的代码。我有以下声明:

totalItems = ((Number) criteria.setProjection(Projections.rowCount()).
                    uniqueResult()).intValue();
criteria.setProjection(null);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.addOrder(Order.desc("id"));


它适用于几乎所有实体,除了具有多对多关系的特定实体之外。在我的情况下,它是数据库中的Nominations<-->Nominee<-->Employee。在我的豆子中,提名有一个用于映射关系的员工列表。

基本上totalItems返回的是提名人数,而不是提名人数。例如,由2名被提名人组成的提名数为2,而不是1。

我该如何解决?

谢谢!

最佳答案

好吧,我想通了。我改变了这个

totalItems = ((Number) criteria.setProjection(Projections.rowCount()).
                uniqueResult()).intValue();


有了这个

totalItems = ((Number) criteria.setProjection(Projections.countDistinct("id")).
                uniqueResult()).intValue();


基本上,现在它与众不同。

07-25 23:42
查看更多