0

我正在使用 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")
4

1 回答 1

1

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

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

于 2013-04-08T22:54:50.097 回答