2013-04-25 2 views
2

Допустим, у меня есть эти два боба сущности:Mapping один-ко-многим с помощью QueryDSL SQL

public class Audit { 

    private String code; 

    private java.sql.Timestamp creationDate; 

    private String creatorId; 

    private java.sql.Timestamp deletionDate; 

    private String description; 

    private String id; 

    private String name; 

    private String notes; 

    private Short status; 

    private List<AuditParticipant> participants; 
} 

и:

public class AuditParticipant { 

    private String auditId; 

    private String department; 

    private String id; 

    private String name; 

    private String notes; 

    private String role; 

    private String surname; 
} 

... где Audit может иметь 1..n Participants , как я могу использовать QueryDSL SQL для проецирования списка участников в аудиторию (получить все участники, принадлежащие аудиту)?

Бобы были сгенерированы с использованием генерации кода QueryDSL.

Благодаря

ответ

3

Querydsl обеспечивает функциональные возможности агрегации результата для таких случаев http://www.querydsl.com/static/querydsl/3.1.1/reference/html/ch03s02.html#d0e1634

В этом случае было бы что-то вроде

query.from(audit) 
    .innerJoin(participant).on(...) 
    .transform(groupBy(audit.id).as(audit, list(participant))); 

Смотрите эти примеры для других вариантов GroupBy https://github.com/mysema/querydsl/blob/master/querydsl-collections/src/test/java/com/mysema/query/collections/GroupByTest.java

+0

Круто, это должно сработать. Спасибо, Тимо. – Nedo

Смежные вопросы