Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使此语句返回正确的实体数_Java_Hibernate - Fatal编程技术网

Java 如何使此语句返回正确的实体数

Java 如何使此语句返回正确的实体数,java,hibernate,Java,Hibernate,由于我对Hibernate和DB设计不熟悉,所以我使用了一些遗留代码。我有以下声明: totalItems = ((Number) criteria.setProjection(Projections.rowCount()). uniqueResult()).intValue(); criteria.setProjection(null); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTIT

由于我对Hibernate和DB设计不熟悉,所以我使用了一些遗留代码。我有以下声明:

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();
现在基本上是清零了