Используйте критерии создания для нескольких ассоциаций
Какое наиболее эффективное решение для получения status
значение атрибута из экземпляра ClassD, имея его name
Значение атрибута и начиная с экземпляра ClassA?
Я могу использовать цикл в каждом списке, но я думаю, что есть лучшее решение с использованием критериев создания
Class ClassA {
static hasMany = [CLassBList:ClassB]
}
Class ClassB {
static hasMany = [CLassCList:ClassC]
static belongsTo = [ClassA]
}
Class ClassC {
static hasMany = [CLassDList:ClassD]
static belongsTo = [ClassB]
}
Class ClassD {
String name
String status
static belongsTo = [ClassC]
}
1 ответ
Я предполагаю (хотя ваш код не упоминает об этом), что у вас есть некоторые критерии для ClassA, по которым вы хотите искать, тогда вы можете использовать createCriteria, например:
def c = ClassD.createCriteria()
def results = c.list () {
projections { property('status') }
classC {
classB {
classA {
eq('classAProperty', someClassAValue)
}
}
}
}
Используйте.get () вместо.list (), если вы ожидаете только 1 результат, тогда вам также может потребоваться предложение order ().
Удалите проекции, если хотите, чтобы весь ClassD был возвращен, а затем работайте так, как считаете нужным.