我正在使用Hibernate(GORM)開發Grails項目。我有以下域模型休眠標準問題
ClientContact{
static hasMany = [owners: Person]
static belongsTo = [Person]
}
Person{
static hasMany = [clientContacts:ClientContact]
}
當我嘗試檢索與特定所有者(人)的所有ClientContacts時,我遇到一些有趣的問題。我使用下面的查詢條件:
def query = {
owners {
eq("id", Long.parseLong(params.ownerId))
}
}
def criteria = ClientContact.createCriteria()
def results = criteria.list(params, query)
的問題是....當我我的每在結果ClientContacts的迭代,他們只有的一個業主 - 當其實,最有許多其他業主。是什麼賦予了?我知道hibernate/GORM使用懶惰抓取,但我認爲它會在我試圖訪問ClientContact時抓取所有其他所有者。
有什麼想法?我想繼續使用列表()函數,因爲它提供了一些很好的分頁功能。
安德魯
我已經添加了所有適當的方法來支持多對多關聯。我知道這是因爲我可以向所有者添加ClientContacts。問題在於檢索 - 如上所述。 我嘗試了eqId()搜索條件,但它最終返回了與ClientContacts完全相反的結果。我迷路了。 – anschoewe 2008-11-02 03:39:37