crit.setProjection (Projection.rowCount ()) с Hibernate дает неожиданный результат - PullRequest
0 голосов
/ 14 марта 2012

Мы используем Hibernate 3.3 для нашего приложения и сталкиваемся с этой проблемой, в которой

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

criteria.setProjection(Projections.rowCount()); возвращает 4 строки, 3 из которых имеют значения «0», а 1 - правильное значение.

Из-за этой проблемы criteria.uniqueResult(); выдает исключение, говорящее org.hibernate.NonUniqueResultException: query did not return a unique result: 4

Любая помощь будет принята с благодарностью.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Я сам понял причину!

Существует несколько классов (ровно 3), которые наследуют таблицу, по которой мы запускаем этот запрос ("таблица").Таким образом, из-за этого наш запрос запускается на все 4 таблицы.

Решено много наших проблем.

Wowww !!!Какое облегчение это.:)

1 голос
/ 14 марта 2012

попробуй

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