gpt4 book ai didi

java - 使用 QueryDSL SQL 映射一对多关系

转载 作者:搜寻专家 更新时间:2023-10-31 19:56:16 24 4
gpt4 key购买 nike

假设我有这两个 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;
}

... Audit 可以有 1..n Participants,我如何使用 QueryDSL SQL 将参与者列表转换到 Audit bean(获取所有参与者属于审计)?

bean 是使用 QueryDSL 代码生成生成的。

谢谢

最佳答案

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

关于java - 使用 QueryDSL SQL 映射一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com