由于我是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();
基本上,现在它与众不同。