Grails使用具有3x +逻辑参数的动态查找器 [英] Grails using dynamic finders with 3x+ logical arguments

查看:176
本文介绍了Grails使用具有3x +逻辑参数的动态查找器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我成功地使用Hibernate中的动态查找器在数据库中进行搜索:

I sucessfully managed to search in the database using this dynamic finder from Hibernate:

def temp = User.findByNameAndStreet("name", "street")

尽管我需要一个这样的triple逻辑参数:

Although, i need a tripple logical argument like this:

def temp = User.findByNameAndStreetAndCity("name", "street", "city")

任何简单的方法来做?

推荐答案

The Grails dynamic finders don't support more than two predicates. This is because it's not clear whether

User.findByNameAndAgeOrGender('foo', 12, 'm')

意思是:

(name == 'foo' && age == 12) || gender == 'm'

或这个:

name == 'foo' && (age == 12 || gender == 'm')

诚然,如果谓词总是相结合与

Admittedly if the predicates are always combined with And or Or.

更新:自Grails 1.4以来,您可以拥有无​​限数量的谓词,如果它们都与

Update: since Grails 1.4 you can have an unlimited number of predicates if they're all combined with either And or Or

相反,您可以使用 findWhere findAllWhere (取决于您是否只想要第一个结果或所有结果)。这两个都支持无限数量的谓词,我假定与相结合,例如:

Instead, you can use either findWhere or findAllWhere (depending on whether you want just the first result or all results). Both of these support an unlimited number of predicates which I assume are combined with And, for example:

User.findAllWhere(name: "foo", age: 12, gender: 'm')

这篇关于Grails使用具有3x +逻辑参数的动态查找器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆