Устанавливайте только определенные параметры в DTO, используйте маппер - PullRequest
0 голосов
/ 13 июня 2018

Я хочу установить только фиксированные параметры из DTO.У меня есть 3 Entity (таблицы), которые связаны с FK или PK.Поэтому, когда я получаю данные из базы данных с использованием идентификатора таблицы A. Jpa предоставит мне все данные со своим дочерним элементом, которые я точно хочу.

public class AEntity{

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "a_id")
private Long aId;
private String name;
private String model;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "b_id")
private bEntity bentity;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "c_uid")
private cEntity centity;

@JoinColumn(name = "d_id")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<dEntity> d;

}

Вот так у меня есть B, C, D Entity.Теперь я получаю данные от A_id.И создал aDTO, как:

public class aDTO {

private Long a_Id;
@JsonProperty(required=true)
private String name;
@JsonProperty(required=true)
private String model;

    @Valid
    private List<AllbDTO>  bList;

    private List<AllcDTO>  cList;

}

И используя этот код:

     {
     Type targetListType = new TypeToken<List<aDTO>>() {                 
     }.getType();
      List<aDTO> aDTOs = mapper.map(AllDAtaByQuery, targetListType);
                return aDTOs ;
}

теперь «AllDAtaByQuery» является объектом-сущностью для хранимых данных из запроса, и все работает нормально.Это дает мне список затем внутреннего списка с данными таблиц b и так далее со всеми полями.В: Возможно ли, что я скажу mapper отображать определенные поля, которые я хочу, чтобы я мог отправить ответ с определенным полем?Как и в таблице b есть 6 полей, но я хочу получить только 2 поля данных в ответ, используя тот же DTO.поэтому я буду использовать тот же dto для всех других запросов и манипулировать ответом в соответствии с потребностями.

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