2012-03-27 2 views
0

Как написать критерии для следующих 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); 

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

ответ

0

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

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); 

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

Смежные вопросы