1

因为我是 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在数据库中。在我的 bean 中,提名有一个员工列表来映射关系。

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

我该如何解决这个问题?

谢谢!

4

1 回答 1

0

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

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

有了这个

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

基本上它现在计数不同。

于 2012-06-13T16:10:42.187 回答