2015-07-12 5 views
0

Я пытаюсь выполнить запрос, который построен с использованием Hibernate Criteria APIHibernate Проекция с агрегатной функцией

List results = session.createCriteria(Person.class) 
.setProjection(Projections.projectionList() 
    .add(Projections.rowCount()) 
    .add(Projections.property("name")) 
    .add(Projections.property("age")) 
).list(); 

Но когда я бегу этот вопрос я получаю сообщение об ошибке

"ORA-00937: not a single-group group function" 

Что причина этой ошибки.

ответ

0

Ваша проекция переводится в запрос как: SELECT count(*), name, age FROM person;

Проблема в том, что count(*) возвращает одну строку в то время как имя и возраст выход строки из каждой строки в таблице базы данных. Вам понадобится более сложный запрос для выбора count(*), а затем присоедините его к вашим результатам от SELECT name, age FROM person

В качестве альтернативы вы можете просто выбрать свой счет в отдельном запросе.