Java 如何使此语句返回正确的实体数
由于我对Hibernate和DB设计不熟悉,所以我使用了一些遗留代码。我有以下声明:Java 如何使此语句返回正确的实体数,java,hibernate,Java,Hibernate,由于我对Hibernate和DB设计不熟悉,所以我使用了一些遗留代码。我有以下声明: totalItems = ((Number) criteria.setProjection(Projections.rowCount()). uniqueResult()).intValue(); criteria.setProjection(null); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTIT
totalItems = ((Number) criteria.setProjection(Projections.rowCount()).
uniqueResult()).intValue();
criteria.setProjection(null);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.addOrder(Order.desc("id"));
它适用于几乎所有实体,除了具有多对多关系的特定实体。在我的例子中,它是DB中的提名提名员工
。在my beans中,有一个要映射关系的员工列表
基本上,totalItems
返回的是被提名人数量,而不是提名数量。例如,有2名被提名人的提名将计为2名,而不是1名
我怎样才能解决这个问题
谢谢 好吧,我想出来了。我改变了这个
totalItems = ((Number) criteria.setProjection(Projections.rowCount()).
uniqueResult()).intValue();
用这个
totalItems = ((Number) criteria.setProjection(Projections.countDistinct("id")).
uniqueResult()).intValue();
现在基本上是清零了