有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何配置ModelMapper,使其在内部值为null时不设置someClass=null(someClass是嵌套的)

第一次在这里发帖(我希望你能理解我的问题和我的英语)

我想知道当里面的值为null(在嵌套类中)时,是否有方法“告诉”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);

The method someDao.getOrderByNumber execute a query and use a rowMapper to set the values from the ResultSet to the Order class variables (and in the nested one).

Like this: order = jdbcTemplate.queryForObject(query, new OrderMapper(), orderNumber);

***The firstName and lastName are null in the DB.

当firstName和lastName为null时,ModelMapper将my ClientDto设置为null

映射后OrderDto的输出:“OrderDto(orderNumber=123,orderSize=10cm,orderDescription=Some order,orderClient=null)”

提前谢谢


共 (0) 个答案