簡體   English   中英

將SQL查詢的結果映射到DTO對象(具有內部列表)

[英]Map result of sql query to DTO object(which has inner list)

我有以下SQL查詢

SELECT
  customer.CUSTOMER_NUMBER customerNumber,
  contractDetail.START_DATE campaignStartDate,
  contractDetail.END_DATE  campaignEndDate,
  contractDetailCommitment.END_DATE  commitmentEndDate,
  contractDetail.CONTRACT_DETAIL_STATUS statusCode,
  baseOffer.NAME campaignName,
  property.CODE propertyCode,
  DECODE(property.TYPE, 'LOV', propertyListChoice.CODE, assetPropertyValue.PROPERTY_VALUE) propertyValue
FROM .............

查詢結構並不重要,它返回像這樣的數據

在此處輸入圖片說明

因此,僅在兩個字段中使用不同的值:propertyCode和propertyValue。 我想將此查詢的結果映射到以下dto對象:

@Data
public class ContractInfoDTO {
    private String customerNumber;
    private String campaignStartDate;
    private String campaignEndDate;
    private String campaignName;
    private String statusCode;
    private List<Property> properties;
}

是否可以自動執行此操作? 還是唯一的解決方案是編寫自定義ResultTransformerResultTransformer處理所有三行?

使用JPA您可以將查詢結果直接映射到DTO中,例如

SELECT new com.company.MyDTO(p.someField, p.someField2...) 

但是首先,您需要將SQL查詢轉換為JPQL查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM