впервые публикую здесь (и я надеюсь, что вы понимаете мой вопрос и мой английский).
Я хочу знать, есть ли способ «сказать» ModelMapper, чтобы он не устанавливал someClass=null, когда значения внутри равны нулю (во вложенном классе).
Моя проблема в том, что когда я вызываю свой контроллер, я ожидаю этого ответа:
{
"order": {
"orderNumber": "123",
"orderSize": "10cm",
"orderDescription": "Some order",
"orderClient": {
"firstName": null,
"lastName": null
}
}
}
Но я получил этот:
{
"order": {
"orderNumber": "123",
"orderSize": "10cm",
"orderDescription": "Some order",
"orderClient": null
}
}
Мой пример.
У меня есть два класса в модели:
class Order {
private String number;
private String size;
private String description;
private Client client;
//getters and setters
}
class Client{
private String firstName;
private String lastName;
//getters and setters
}
И у меня есть два класса в dto:
class OrderDTO {
private String orderNumber;
private String orderSize;
private String orderDescription;
private Client orderClient;
//getters and setter
}
class ClientDTO {
private String firstName;
private String lastName;
//getters and setters
}
Я сопоставляю эти классы с ModelMapper следующим образом (в методе):
Order order = someDao.getOrderByNumber(1234);
OrderDto orderDto = modelMapper.map(order, OrderDto.class);
Метод someDao.getOrderByNumber выполняет запрос и использует rowMapper для установки значений из ResultSet в переменные класса Order (и во вложенную).
Вот так:
order = jdbcTemplate.queryForObject(query, new OrderMapper(), orderNumber);
*** Имя и фамилия в БД пусты.
ModelMapper установил для моего ClientDto значение null, когда firstName и lastName равны null.
Вывод OrderDto после сопоставления: «OrderDto(orderNumber=123, orderSize=10cm, orderDescription=Some order, orderClient=null)»
Заранее спасибо!