DetachedCriteria での制限と投影の組み合わせに問題があります。制限または投影のみを個別に使用すると、プログラムは機能します。どうすればこれら2つを組み合わせることができますか?
私は次のSQLを持っています:
select cTopic.topic ,SUM(cTopic.records) as records
from Topics cTopic
where cTopic.id=? and cTopic.active =?
GROUP BY cTopic.topic
order by cTopic.orderTopics
次の Java コードは、group by (setProjection) を使用しなくても正常に動作します。
DetachedCriteria criteria = DetachedCriteria.forClass(Coursetopics.class);
criteria.add(Restrictions.eq("active","Y"));
criteria.add(Restrictions.eq("id.courseid",Id)));
List<Coursetopics> sumList = (List<Coursetopics>) hibernateTemplate
.findByCriteria(criteria);
最後の行 (List) の前に次のコード行を追加すると、プログラムが正しく動作しません。
criteria.setProjection(Projections.projectionList()
.add( Projections.sum("records"))
.add( Projections.groupProperty("topic") ));