Grails createCriteria分组依据

Grails createCriteria分组依据,grails,Grails,如何在grails中使用createCriteria获得类似于MYSQL的查询 SELECT * FROM engine4_user_fields_values WHERE field_id = 31 OR field_id = 24 GROUP BY item_id; 如果我使用这样的东西,效果很好: def items = items_c.list{ 'in'('fieldId',field_ids) projectio

如何在grails中使用createCriteria获得类似于MYSQL的查询

    SELECT * 
      FROM engine4_user_fields_values
     WHERE field_id = 31 OR field_id = 24 
  GROUP BY item_id;
如果我使用这样的东西,效果很好:

def items = items_c.list{
        'in'('fieldId',field_ids)
        projections{
            groupProperty("itemId")
        }
    }
def items = items_c.list(max:5, sort:"itemId", order:"desc"){
        'in'('fieldId',field_ids)
        projections{
            groupProperty("itemId")
        }
    }
但我需要定义顺序、最大值和排序字段,如下所示:

def items = items_c.list{
        'in'('fieldId',field_ids)
        projections{
            groupProperty("itemId")
        }
    }
def items = items_c.list(max:5, sort:"itemId", order:"desc"){
        'in'('fieldId',field_ids)
        projections{
            groupProperty("itemId")
        }
    }
但这会使我得到具有相同“item\u id”的不同行


我能做什么?

listDistinct{}怎么样


对第一个结果使用投影

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

  }

或executeQuery(“此处为您的查询”);使用DistnIt/P>考虑使用HQL查询可能是有意义的。您是否可以更新该问题,包括与engine4_user_fields_values表相关的域类字段?如果在第一个groupProperty下添加groupProperty('fieldId'),会发生什么情况?是的,但这似乎不是这里的要求?