Ned*_*edo 5 java sql jdbc querydsl
可以说我有这两个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;
}
Run Code Online (Sandbox Code Playgroud)
并且:
public class AuditParticipant {
private String auditId;
private String department;
private String id;
private String name;
private String notes;
private String role;
private String surname;
}
Run Code Online (Sandbox Code Playgroud)
...哪里Audit可以有1..n Participants,我如何使用QueryDSL SQL将参与者列表投影到Audit bean(获取属于审计的所有参与者)?
使用QueryDSL代码生成生成bean.
谢谢
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)));
Run Code Online (Sandbox Code Playgroud)
有关其他groupBy选项,请参阅这些示例https://github.com/mysema/querydsl/blob/master/querydsl-collections/src/test/java/com/mysema/query/collections/GroupByTest.java