2013-04-08 207 views
0

我正在使用SpringSourceTool进行grails项目开发。 我有这个要求执行查询与一些如果条件,首先我试过查询在SQL查询浏览器 和它正常工作 ,但是当我尝试在grails中访问它,结果集为空。如何申请条件在grails中的Hibernate查询

我对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

只是要确保您的数据是正确的数据库,如果你运行'DummyData.list()' ,你回来了什么? – 2013-04-08 22:23:01

+0

@JeffStorey:当我不appy如果条件,我得到的数据在列表中,并在我的数据库中,我得到的数据,如果条件太 – 2013-04-08 22:47:52

回答

1

一般来说,你不想要对hibernate数据库执行原始的SQL查询,因为ORM以比存储数据的方式复杂得多的方式将数据存储在表中(所以它可以正确地映射到java o bjects)。您不是从数据库中选择特定的字段,而是选择对象。所以你需要以一种可以通过休眠检索的方式来存储数据。

我建议你使用Grails的设施,以对休眠数据库执行查询 - 尤其是看Criteria Builder

+0

+1为您的建议,似乎合法的我,但在我接受答案,我最好先实施 – 2013-04-09 01:06:45