我是 grails 新手,对 hibernate 不太熟悉。我遇到了一个关于在 grails 中使用 executeQuery 进行 hibernate 查询的问题。我刚刚使此代码与有问题的原始代码类似:
def nonMemberList = Group.executeQuery("select gp.name from Group gp where gp.status = 'CONFIRMED_MEMBER'")
def FemaleMemberList = Group.executeQuery(""" select sum(case when g.isMale = false and g.name not in(:isNotConfirmedMember) from Group g where :startDate <= g.dateCreated and g.dateCreated < :endDate""",
[isNotConfirmedMember: nonMemberList, startDate: startDate, endDate: endDate])
每当 nonMemberList 为 null 时就会发生错误,并且我发现当我使用 is not 语法时列表不应为 null。
我对 hibernate 查询不太熟悉,这就是为什么我遇到一个问题:我应该使用哪些其他 hibernate 查询,其行为也类似于原始代码。 感谢您分享您的知识。
最佳答案
您尝试过使用 Criteria 吗?位于此处:http://grails.org/doc/latest/guide/GORM.html#criteria
请先对 nonMemberList 尝试以下代码,看看它是否产生 null:
//non member list code
def cNonMember = Group.createCriteria()
def nonMemberList = cNonMember.list() {
eq("name", "CONFIRMED_MEMBER")
}
希望有帮助。
关于 hibernate 查询 - grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11220640/