簡體   English   中英

Grails命名查詢-通過關聯查找

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM