1

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

0 に答える 0