Я использую объект DTO для получения информации из моего @RequestBody в контроллере spring rest и использую тот же объект DTO в ответе json.Я хочу полностью скрыть некоторые поля из ответа.
Я пробовал @BeanMapping(ignoreByDefault = true)
, который возвращает ноль для несопоставленных свойств, но мой вопрос:
Есть ли способ полностью скрыть несопоставленные свойства на основена разных методах отображения
Пример
public Class Order {
private Long id;
private String name;
private String otherField;
}
public Class OrderDto {
private Long id;
private String name;
private String otherFieldA
private String otherFieldB;
}
@Mapper
public interface OrderMapper
//..
@Mappings({
@Mapping(target = "id", source ="id"),
@Mapping(target = "name", source ="name"),
@Mapping(target = "otherFieldA", source ="otherField")
})
@BeanMapping(ignoreByDefault = true)
OrderDto fieldAOnlyOrderToOrderDtoMapper(Order order);
@Mappings({
@Mapping(target = "id", source ="id"),
@Mapping(target = "name", source ="name"),
@Mapping(target = "otherFieldB", source ="otherField")
})
@BeanMapping(ignoreByDefault = true)
OrderDto fieldBOnlyOrderToOrderDtoMapper(Order order);
}
- , таким образом, результат вызова первого преобразователя [
fieldAOnlyOrderToOrderDtoMapper
вернет OrderDto объект, у которого нет свойства с именем (otherFieldB)
и вызов второго преобразователя
fieldBOnlyOrderToOrderDtoMapper
вернет объект OrderDto , которыйне имеет названного поля (otherFiledA)