2012-01-09 3 views
0

Я пытаюсь изменить запрос SQL ниже HQL в моем Grails-заводной приложенияпроблема с преобразованием SQL в HQL

top10UserActivityQuery = 
"select sum(trans_cnt) as t_cnt, employeeid as username from map2_data "+ 
"where fdate between (:datefrom) and (:dateto) and res_id=:res_id and location =:location "+ 
"group by employeeid order by t_cnt desc limit 10;" 
der rows = myds.rows(top10UserActivityQuery) 

Как использовать createcriteria в GORM для this..or любым другим способом?

ответ

2

критерии будут аналогичны следующим:

def criteria = DomainClass.createCriteria() 
def topTen = criteria.list { 
    and { 
     between("fdate", dateFrom, dateTo) 
     eq("res", resId) 
     eq("location", location) 
    } 
    projections { 
     sum("trans_cnt") 
     groupProperty("employee") 
     property("employee") 
    } 
} 

однако, я предложил бы использовать прямой HQL этот критерий генерирует.

Смежные вопросы