Grails createCriteria group by

时间:2011-04-08 17:05:28

标签: 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)
        projections{
            groupProperty("itemId")
        }
    }

但是我需要像这样定义order,max和sort字段:

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

但这会让我得到不同的行,同时具有相同的'item_id'

我该怎么办?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

对第一个结果使用投影,

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

  }

或executeQuery(“您的查询在这里”);不同的