2011-04-08 60 views
6

如何在grails中使用createCriteria获取类似于此MYSQL查询的内容?Grails createCriteria group by

def items = items_c.list{ 
     'in'('fieldId',field_ids) 
     projections{ 
      groupProperty("itemId") 
     } 
    } 

但我需要定义秩序,max和排序字段是这样:

SELECT * 
     FROM engine4_user_fields_values 
    WHERE field_id = 31 OR field_id = 24 
    GROUP BY item_id; 

,如果我使用这样的正常工作

def items = items_c.list(max:5, sort:"itemId", order:"desc"){ 
     'in'('fieldId',field_ids) 
     projections{ 
      groupProperty("itemId") 
     } 
    } 

但是,这让我不同具有相同'item_id'的行

我该怎么办?

+1

考虑使用HQL查询可能是有意义的。你能否更新问题,包括与engine4_user_fields_values表相关的域类的字段? – 2011-04-09 20:16:15

+0

如果您在第一个groupProperty下面添加groupProperty('fieldId'),会发生什么? – 2011-04-11 21:57:23

回答

0

使用投影agains的第一个结果,

lists= items.createCriteria().list(){ 
    projections { 
    order ("ItemId") 
    } 

    } 

或的executeQuery( “您的查询这里”);与distnict