我使用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")
答案 0 :(得分:1)
通常,您不希望对hibernate数据库执行原始SQL查询,因为ORM以比存储数据的方式更复杂的方式存储表中的内容(因此它可以正确映射到java对象)。您不是从数据库中选择特定字段,而是选择对象。因此,您需要以可以通过hibernate检索的方式存储数据。
我建议您使用grails中的工具对hibernate数据库执行查询 - 特别是查看Criteria Builder