Я работаю над проектом Grails с использованием Hibernate (GORM). У меня есть следующие доменные модели:
ClientContact {
static hasMany = [owners: Person]
static belongsTo = [Person]
}
Person {
static hasMany = [clientContacts: ClientContact]
}
Когда я пытаюсь получить все ClientContacts
с определенным владельцем (Person
), я сталкиваюсь с некоторыми забавными проблемами. Я использую следующие критерии запроса:
def query = {
owners {
eq("id", Long.parseLong(params.ownerId))
}
}
def criteria = ClientContact.createCriteria()
def results = criteria.list(params, query)
Проблема в том, что когда я перебираю все свои ClientContacts
в результатах, у них только один владелец - тогда как на самом деле у большинства есть много других владельцев. Что дает? Я знаю, что hibernate / GORM использует ленивую выборку, но я думал, что при попытке получить к ним доступ все остальные владельцы будут ClientContact
.
Есть мысли? Я хотел бы продолжить использование функции list () , поскольку она предоставляет некоторые приятные функции подкачки.