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<-->EmployeeDBにあります。私の豆では、指名には関係をマッピングする従業員のリストがあります。

基本的totalItemsには、指名の数ではなく、候補者の数を返します。たとえば、候補者が 2 人いる場合は、1 人ではなく 2 人としてカウントされます。

どうすればこれを修正できますか?

ありがとう!

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 に答える