0
所以...有沒有辦法做這樣的事情?Grails Gorm在命名查詢中引用屬性的(列的)值?
class Kitty {
String name
String nickName
public static String getExpectedNickname(String name) {
return name.replaceAll('Mr. ', '')
}
static namedQueries = {
byKityWithPredictableNickname {
ilike 'name', '%Kitty%'
ilike 'nickName', Kitty.getExpectedNickname('name')
}
}
}
我可以以某種方式引用當前行的列值的值嗎?我認爲財產('名稱')會起作用,但唉,不。
編輯:
又如:我覺得像這樣的工作...但它不會:(...
static namedQueries = {
whyDoesntThisReturnEverything {
int c = Kitty.bySubQuery(id).count() //returns everything when I put "1" instead of "id"
c == 1
}
bySubQuery { Long paramId ->
eq 'id', paramId
}
}
相反,我得到一些愚蠢的非法參數異常:
[email protected] Stacktrace follows:
Message: [email protected]
Line | Method
->> -1 | invoke in sun.reflect.GeneratedMethodAccessor327
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 606 | invoke . . . . . . . . . . . . . . . in java.lang.reflect.Method
| 1254 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 90 | invoke . . . . . . . . . . . . . . . in org.codehaus.groovy.reflection.CachedMethod
| 57 | getProperty in groovy.lang.MetaBeanProperty
...
我不確定我關注...爲什麼你有一切('%')或ed兩次?並不會取代返回一個字符串不是布爾值?我用另一個我希望能夠工作的事例來編輯我的原始問題。 – SnoopDougg 2014-10-20 18:22:51
根據你的例子,你需要所有'''nickname ilike name( - 'Mr.')'''的對象,這就是namedQuery'''findAllByNickNameLikeName''的作用。我只是把''''%''''作爲例子,但是下面也會工作:'''sqlRestriction「nick_name like replace(name,'Mr.','')」'''' – Victor 2014-10-20 18:39:51