我正在使用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