2010-05-30 71 views
0

我試圖拉出所有名稱不與給定字符串部分匹配的實體。MyEntity.findAllByNameNotLike('bad%')

MyEntity.findAllByNameNotLike('bad%') 

這給了我下面的錯誤:

No such property: nameNot for class: MyEntity Possible solutions: name" type="groovy.lang.MissingPropertyException">

我有一個快速瀏覽一下criteria的風格,但我似乎無法得到那個既去,

def results = MyEntity.withCritieria { 
    not(like('name', 'bad%')) 
} 

No signature of method: MyEntity.withCritieria() is applicable for argument types: (MyService$_doSomething_closure1)

理想情況下,我希望能夠在查找器級應用此限制,因爲數據庫包含大量數據我不希望加載並因性能原因而排除的實體。

[Grails的1.3.1]

回答

0

我已經摸索出瞭如何使用withCriteria來做到這一點,not應該是它自己的封閉。

def results = MyEntity.withCritieria { 
    not { 
    like('name', 'bad%')) 
    } 
} 

我最初使用withCriteria是,我是想測試這是一個單元測試,工作正常與動態查找,但與標準的API(據我可以告訴)有問題。

(我將離開這一天沒有回答,看看有沒有人有更好的解決方案,否則我會接受我的回答)