我正在尝试提取名称与给定字符串不匹配的所有实体。
MyEntity.findAllByNameNotLike('bad%')
这给了我以下错误:
没有这样的属性:nameNot for class:MyEntity 可能的解决方案:名称“type =”groovy.lang.MissingPropertyException“>
我快速浏览了criteria风格,但我似乎无法做到这一点,
def results = MyEntity.withCritieria {
not(like('name', 'bad%'))
}
没有方法签名:MyEntity.withCritieria()适用于参数类型:(MyService $ _doSomething_closure1)
理想情况下,我希望能够在finder级别应用此限制,因为数据库包含大量我不想加载的实体,然后出于性能原因而排除。
[grails 1.3.1]
答案 0 :(得分:0)
我已经找到了如何使用withCriteria
执行此操作,not
应该是自己的闭包。
def results = MyEntity.withCritieria {
not {
like('name', 'bad%'))
}
}
我最初使用withCriteria
时遇到的问题是我试图将其作为一个单元测试来测试,它可以与动态查找器一起使用,但不能使用标准API(据我所知)。
(我会留下一天的答案,看看是否有人有更好的解决方案,否则我会接受我的回答)