Сопоставить результат запроса SQL с объектом DTO (который имеет внутренний список) - PullRequest
0 голосов
/ 18 сентября 2018

У меня следующий запрос 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 .............

Структура запроса не важна, она возвращает такие данные

enter image description here

Итак, разные значения только в двух полях: 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;
}

Возможно ли сделать это автоматически?Или единственное решение - написать пользовательский ResultTransformer и обработать все три строки одну за другой?

1 Ответ

0 голосов
/ 18 сентября 2018

Используя JPA, вы можете отобразить результат запроса непосредственно в DTO, например,

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

Но сначала вам нужно преобразовать запрос SQL в запрос JPQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...