Grails createCriteria组 [英] Grails createCriteria group by

查看:98
本文介绍了Grails createCriteria组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  SELECT * 
FROM engine4_user_fields_values $

如何在grails中使用createCriteria获取类似于MYSQL查询的内容? b $ b WHERE field_id = 31 OR field_id = 24
GROUP BY item_id;

如果我使用类似的东西,它可以正常工作:


$ b $ ('fieldId',field_ids)
预测{
groupProperty(itemId)b

  def items = items_c.list {
'


$ / code $ / pre

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

  def items = items_c.list(max:5,sort:itemId,order:desc) ('fieldId',field_ids)
预测{
groupProperty(itemId)
}
}
' c>

但是,这让我获得了与item_id相同的不同行



解决方案

那么listDistinct {}?

href =http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html#5.4.2%20Criteria =nofollow> http:// grails.org/doc/latest/guide/5.%20Object%20Relat ional%20Mapping%20(GORM).html#5.4.2标准


How can I get something like this MYSQL query with createCriteria in grails?

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

It works fine if I use something like this:

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

But I need to define order, max and sort field like this:

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

But this gets me different rows with the same 'item_id'

What can I do?

解决方案

How about listDistinct{} ?

http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.4.2 Criteria

这篇关于Grails createCriteria组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆