如何在Grails中的Hibernate查询条件中应用

时间:2013-04-08 22:01:23

标签: sql grails hql

我使用SpringSourceTool进行grails项目开发。 我有这个要求执行一个带有if条件的查询,首先我在sql查询浏览器中尝试了查询 它工作正常 但是当我尝试在grails中访问它时,结果集为空。

我对DummyData的SQL查询,

select week , month , emp_name , sum(emp_salary),sum(if(emp_age=19,emp_bonus,0)) from dummy_data order by week;

这个查询工作得很好

现在当我在grails域类中尝试相同的执行查询

def myList = DummyData.executeQuery("select week,month,empName,sum(empSalary),sum(if(empAge=19,empBonus,0)) from DummyData group by week")

1 个答案:

答案 0 :(得分:1)

通常,您不希望对hibernate数据库执行原始SQL查询,因为ORM以比存储数据的方式更复杂的方式存储表中的内容(因此它可以正确映射到java对象)。您不是从数据库中选择特定字段,而是选择对象。因此,您需要以可以通过hibernate检索的方式存储数据。

我建议您使用grails中的工具对hibernate数据库执行查询 - 特别是查看Criteria Builder