объединить критерии с группой - PullRequest
0 голосов
/ 28 марта 2012

Как мне написать критерий для следования SQL

SELECT
m.match_type, 
count(m.match_type)
cat.description, 
loc.oid

FROM
USER_MATCH m, 
RECORD rec, 
CATEGORY cat, 
LOCATION loc

WHERE
m.record_oid = rec.oid and 
rec.category_oid = cat.oid and 
rec.location_oid = loc.oid
group by m.match_type, cat.description, loc.oid

Я пытаюсь сделать это следующим образом, но получаю здесь не допускаются выражения подзапроса.

Criteria criteria = hibernateTemplate.getSessionFactory().getCurrentSession().createCriteria(Match.Class);
criteria.createAlias("record", "record");
criteria.createAlias("category", "category");

ProjectionList projList = Projections.projectionList();        
projList.add(Projections.groupProperty("record.categoryId"));  
projList.add(Projections.groupProperty("record.locationId")); 
criteria.setProjection(projList);

заранее спасибо:)

1 Ответ

0 голосов
/ 30 марта 2012

Это вам поможет

Criteria criteria = hibernateTemplate.getSessionFactory().getCurrentSession().createCriteria(Match.Class);
criteria.createAlias("record", "record");
criteria.createAlias("category", "category");
criteria.createAlias("location", "location");

ProjectionList projList = Projections.projectionList();  
projList.add(Projections.groupProperty("match_type"));      
projList.add(Projections.count("match_type");
projList.add(Projections.groupProperty("record.categoryId"));  
projList.add(Projections.groupProperty("record.locationId")); 
criteria.setProjection(projList);

Обратите внимание , что вам не нужно включать условие соединения в hibernate, потому что это автоматически обрабатывается CreateALias.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...