在GORM中有条款

时间:2015-05-27 19:31:42

标签: grails gorm

我有一个名为Keyword的域类,我需要根据某些条件运行查询以获取系统中所有重复的关键字。 MySQL中的查询是这样的:

select keywordid, md5, match_type, count(md5)
from keyword
where site_id = 'MLU'
and customer_id = 1075613440
group by md5
having count(md5) > 1;

现在我需要将此查询“翻译”为Grails,但我老板的要求是避免使用HQL。 有可能吗?

现在我所拥有的就是:

def dupKws = criteria.list {
    eq('siteId', siteId)
    eq('customerId', account.customerId)
    projections {
        groupProperty('md5')
        groupProperty('matchType')
        rowCount()
     }
}

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令在Grails中运行此查询:

import groovy.sql.Sql    
def query = """ select keywordid, md5, match_type, count(md5)\
                    from keyword\
                    where site_id = 'MLU'\
                    and customer_id = 1075613440\
                    group by md5\
                    having count(md5) > 1 """
    Sql sql = new Sql(datasource)
    sql.execute(query)