【发布时间】:2018-07-08 14:07:34
【问题描述】:
我在将 HQL 查询映射到复杂 DTO 时遇到问题。我所说的复杂 DTO 是指组合另一个 DTO / 集合 DTO 的 DTO。我试图找到解决方案,但没有找到任何可以满足我要求的东西。例如有一个 DTO(为简单起见,我省略了属性):
public class Consignment {
private List<OrderData> orderData;
private List<AttributesData> attributesData;
private CostData costData;
public Consignment(List<OrderData> orderData, List<AttributesData> attributesData, CostData costData) {
//setting fields
}
}
HQL 允许通过构造函数通过将结果集中的列作为参数传递来创建 DTO 对象。是否可以创建子查询或 smth.否则要在集合中获取数据,然后将其作为参数传递给主 DTO?看起来这是不可能的,但也许我错过了什么。
否则,唯一的方法是在单独的 HQL 查询中获取数据,然后将主 DTO 创建为纯 Java 对象。如果有人有其他想法如何做到这一点 - 请分享您的想法。
【问题讨论】:
-
我使用mapstruct.org将实体转换为dto。