0

如果我有三个这样的域类:

class Candidate  {
    static belongsto=[application:Application]

}


class Vote {
   String name;
static belongsto=[application:Application]

}

class Application {


    Date datedemand;
   Candidate candidates; 
     Vote votes
    static hasMany = [candidates:Candidate,votes:Vote]

}

我想检索按 Vote's Name 分组的所有候选人。

我开始了以下尝试,但我仍然被阻止:

def criteria =  Application.createCriteria()
def results = criteria.list { 
    votes {

     }
    candidates{


    }

}
4

2 回答 2

0

在这种情况下,我会选择一个简单的香草 HQL 而不是标准,像这样或更多(使用join你需要的方式):

String hql = "Select V.name, C.name " + 
             "from Candidate C, Vote V " + 
             "where C.application = V.application " +
             "group by V.name, C.name"

Query query = session.createQuery(hql)
List results = query.list()
于 2013-04-28T01:39:08.060 回答
0

在体面的 grails (2.x+) 中,您可以尝试类似的方法:

Application.withCriteria {
   createAlias("votes", votes)
   projections {
      groupProperty("votes.name")
   }
}
于 2013-04-27T19:42:06.810 回答