我成功地使用 Hibernate 的动态查找器在数据库中进行搜索:
def temp = User.findByNameAndStreet("name", "street")
虽然,我需要这样的三重逻辑论证:
def temp = User.findByNameAndStreetAndCity("name", "street", "city")
有什么简单的方法可以做到吗?
Grails 动态查找器不支持两个以上的谓词。这是因为尚不清楚是否
User.findByNameAndAgeOrGender('foo', 12, 'm')
意思是这样的:
(name == 'foo' && age == 12) || gender == 'm'
or this:
name == 'foo' && (age == 12 || gender == 'm')
诚然,如果谓词总是与And
or Or
.
Update:从 Grails 1.4 开始,如果谓词全部与任一谓词组合,则可以拥有无限数量的谓词And
or Or
相反,您可以使用findWhere
or findAllWhere
(取决于您是只想要第一个结果还是所有结果)。这两个都支持无限数量的谓词,我假设它们与And
, 例如:
User.findAllWhere(name: "foo", age: 12, gender: 'm')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)