[英]Grails named query - find by association
我想創建一個命名查詢,該查詢將基於子類屬性的一個或多個屬性找到一個類的所有對象。
我希望能夠找到所有Foo.me ==“ some string”的酒吧
所以,我有這個,它不起作用:
class Foo {
String me
}
class Bar {
Foo foo
static namedQueries = {
findByFooMe { meStr ->
eq(foo.me, meStr)
}
}
}
正確的語法是什么樣的? 另外,如果Bar具有很多Foos,並且我想查找其Foo,me屬性之一是“搜索字符串”的所有Bar,它將如何改變?
即
class Bar {
static hasMany [foos: Foo]
}
雖然我不建議將findBy
用作命名查詢的前綴,但是您接近正確的實現。 這也是該查詢的更新版本,也帶有新名稱。
static namedQueries = {
locateByFooMe { meStr ->
foo {
eq('me', meStr)
}
}
}
如果您更改與集合的關系(一對多),只需確保將屬性名稱foo
(在這種情況下)更改為您將其更改為的任何名稱(問題中的foos
),以上查詢仍將繼續起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.