2012-03-14 42 views
0

を生成我々は、我々のアプリケーションのために3.3を冬眠使用しにおけるcriteria.setProjection(Projections.rowCountは())、予期しない結果

Criteria criteria = getSession().createCriteria(table.class); 

criteria.setProjection(Projections.rowCount());戻り4行、3持つ値が「0このweired問題に直面しています'と1を正しい値で返します。そのため、この問題criteria.uniqueResult();

は、すべてのヘルプは高く評価されるだろうorg.hibernate.NonUniqueResultException: query did not return a unique result: 4

言って例外がスローされます。

ありがとうございます。

+0

最悪の部分は、私たちがHQLで同じ問題に直面していることです。 :( – instanceOfObject

答えて

1

を試してみてください!

このクエリを実行しているテーブル(「テーブル」)を継承しているクラスが3つあります。したがって、このため、4つのテーブルすべてに対してクエリが実行されます。

私たちの多くの問題を解決しました。

Wowww !!!どのような安堵です。 :)

1

は、私はその理由を自分で得た

int count = getSession().createCriteria(table.class) 
    .setProjection(Projections.rowCount()) 
    .criteria.uniqueResult<int>();