의 나는 두 가지 간단한 도메인 클래스가 있다고 가정 해 봅시다 : 지금, 나는이 같은 구조 항목의 목록을 생성 할의 MySQL의 GROUP_CONCAT 대안
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의 elemen의 첫 번째 제목을 검색합니다 기준은 그것을 얻기 위해 내 A 인스턴스와 관련된. 이처럼 : 나는 학사 타이틀 MySQL의 GROUP_CONCAT 동일한 효과를 얻을 수있는 방법 :
는1, "A1", "B1"
2, "A2", "B2"
...
이제, 실제 시나리오는 조금 더 복잡, 내가있는 지점에 도착하기 위해 단순화했습니다입니까?
나는 하나의 기준으로이를 수행하려고 노력하고 있지만 가능한 경우 다른 해결책을 논의하게되어 기쁩니다.
입니다. – lucke84
인 메모리 db를 사용하여 모든 연관을 목록으로 얻을 수 있습니다. 추가 수집 유틸리티를 사용하면 원하는 것을 얻을 수 있습니다. 1, TestA1, TitleB2], [1, TestA1, TitleB3], [2, TestA2, TitleB2], [2, TestA2, TitleB4], [2, TestA2, TitleB5]] [ '. 이 동작은 MySql에만 해당합니까? H2 in-memory db에서 같은 것을 테스트 할 수 있습니까? – dmahapatro
@dmahapatro 어떻게 정보를 검색하나요? 별도의 쿼리를 사용합니까? 두 결과를 어떻게 병합합니까? 자유롭게 답변을 게시하십시오. – lucke84