WithCriteria двухуровневая глубокая ассоциация, желающая получить грабли
Я бы хотел загрузить структуру, на два уровня в цепочке связей. Что-то вроде:
class TopLevel {
String name
LevelOne levelOne
}
class LevelOne {
String name
LevelTwo levelTwo
}
class LevelTwo {
String name
}
Я хотел бы загрузить всю структуру. Поиск вокруг я нашел этот пример, но это не сработало. "Println" сгенерировал запрос в таблицу LevelTwo.
def result = TopLevel.withCriteria {
eq('name', 'test')
fetchMode "levelOne", FetchMode.JOIN
levelOne {
fetchMode "levelTwo", FetchMode.JOIN
}
}
println result.levelOne.levelTwo.name
Оцените любую помощь!
- Стив
Ответы
Ответ 1
Сработало. Здесь секретный соус:
def result = TopLevel.withCriteria {
eq('name', 'test')
fetchMode 'levelOne', FetchMode.JOIN
fetchMode 'levelOne.levelTwo', FetchMode.JOIN
fetchMode 'levelOne.levelTwo.levelThree', FetchMode.JOIN
}