Допустим, у меня есть два простых класса предметной области:
class A {
String name
static hasMany = [bs: B]
}
class B {
String title
}
Теперь я хочу создать список элементов, структурированных следующим образом:
// id of A instance, name of A instance, comma separated list of Bs titles associated to A istance
1, "A1", "B1, B2"
2, "A2", "B2, B5"
...
Это мои критерии, чтобы получить это:
def list = A.withCriteria {
createAlias 'bs', 'bs', CriteriaSpecification.LEFT_JOIN
projections {
property 'id'
property 'name'
property 'bs.title' // this is the interesting line
}
}
и это, очевидно, извлекает только первый заголовок элементов B, связанных с моим экземпляром A. Как это:
1, "A1", "B1"
2, "A2", "B2"
...
Теперь сценарий реальной жизни немного сложнее, я упростил, чтобы добраться до сути, а именно: как я могу получить тот же эффект mysql group_concat для заголовков bs?
Я пытаюсь сделать это по одному критерию, но если это невозможно, я буду рад обсудить другое решение.
[[1, TestA1, TitleB1],[1, TestA1, TitleB2],[1, TestA1, TitleB3],[2, TestA2, TitleB2],[2, TestA2, TitleB4],[2, TestA2, TitleB5]]
. Является ли это поведение характерным для MySql? Можете ли вы проверить то же самое в базе данных H2 в памяти? - person dmahapatro   schedule 26.06.2013