У меня есть объект для преобразования в dto, который управляется ModelMapper.Моя спецификация была изменена, и теперь мне нужно добавить логическое свойство в DTO, определяющее, есть ли у коллекции в сущности элементы.
Итак, если моя сущность выглядит примерно так:
public class MyEntity {
private Integer id;
private String someField;
@OneToMany
private Set<Foo> foos;
private Date createdDate;
private Date modifiedDate;
private Integer version;
// getters & setters
}
и мой обновленный DTO выглядит примерно так:
public class MyEntityDto {
private Integer id;
private String someField;
private Boolean hasFoos;
// getters & setters
}
Я преобразую из сущности в DTO в потоке:
public List<MyEntityDto> convert(List<MyEntity) l) {
return l.stream
.map(this::toDto)
.collect(Collectors.toList());
}
Чтобы соответствовать обновленной спецификации, я изменил toDto
метод добавления логического значения вручную, но я не совсем доволен им и предпочел бы конвертировать в ModelMapper, хотя бы в качестве учебного упражнения.
private MyEntityDto toDto(MyEntity e ) {
MyEntityDto dto = modelMapper.map(e, MyEntityDto.class);
dto.setHasFoos(e.foos.size() > 0);
return dto;
}
Итак, мой вопрос, как я могуустановить логическое свойство hasFoos
DTO в зависимости от того, есть ли у элемента в сущности элементы, использующие только API ModelMapper?