6

この 2 つの Bean エンティティがあるとします。

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;
}

...どこでAudit1..n を持つことができますParticipantsか? QueryDSL SQL を使用して、参加者のリストを監査 Bean に射影するにはどうすればよいですか (監査に属するすべての参加者を取得します)?

Bean は、QueryDSL コード生成を使用して生成されました。

ありがとう

4

1 に答える 1

7

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

于 2013-04-27T08:56:11.800 に答える