当前位置: 首页 > 知识库问答 >
问题:

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

柯树
2023-03-14
{
    "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
}
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
}
Order order = someDao.getOrderByNumber(1234);
OrderDto orderDto = modelMapper.map(order, OrderDto.class);

***数据库中的firstName和lastName为空。

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

映射后OrderDto的输出:“OrderDto(ordernumber=123,ordersize=10cm,orderdescription=some order,orderclient=null)”

提前感谢!

共有1个答案

宋飞舟
2023-03-14

您可以尝试使用默认值,方法是在默认构造函数中初始化或声明属性

示例:

class OrderDTO {

    private String orderNumber;
    private String orderSize;
    private String orderDescription;
    private Client orderClient = new Client();

    //getters and setter
}

 class OrderDTO {

    private String orderNumber;
    private String orderSize;
    private String orderDescription;
    private Client orderClient;

    public OrderDTO() {
         this.orderClient = new Client();
    }
    //getters and setter
}
 类似资料:
  • 问题内容: 有没有办法为通用模板指定默认类型? 假设我有一堂课。猴子可以生活在不同的,例如或: 有没有一种方法可以为指定默认值,所以我可以使用类型而不是没有得到编译器警告? 编辑 换句话说,是否有一种方法可以摆脱“原始类型”警告而不必明确地禁止它呢? 问题答案: 不,你不能那样做。通用参数没有默认值。您可以重新组织类型层次结构,以便有一个GenericMonkey和一个DefaultMonkey可

  • 问题内容: 使用Zend_Db执行UPDATE和INSERT查询时,我经常需要设置等于NULL的值(不是”)。但是,Zend_Db :: insert()和Zend_Db :: update()的默认行为似乎是将空值转换为空字符串(’‘)并照此放入数据库。 有谁知道如果php中的值为空,则实际上强制将NULL值放入字段的方法吗? 问题答案: 尝试将受影响的字段设置为:

  • 问题内容: 我需要检查value是否定义为任何东西,包括null。将null值视为undefined并返回。以以下为例: 请注意,这是未定义的。 我需要找到满足以下条件的条件: 有任何想法吗? 问题答案: IIRC,您可以使用此功能:

  • 问题内容: 我在XPages应用程序中偶尔遇到异常: 提到的两个类是相同的,它是用作会话bean的类。我无法用Google搜索涵盖我的问题的任何内容。通常的解释是设计元素的变化,而不是我的情况。 从那时起,XPage应用程序变得不可用(使用会话bean someClass的页面),直到重新启动http任务或重新保存faces-config.xml。 在某些情况下,这与其他异常有关: 这种行为的背后

  • 我正在创建一个rest方法,它可以使用RequestParam注释处理一个可选参数(在本例中是性别)。但性别值始终被视为空值。(spring Version4.0.0)第二个参数被认为是正确的。 提前谢了。潘卡杰

  • 问题内容: 我注意到了Collections.sort的规格: 为什么这里需要“ ”?如果是extend ,那么我们是否不能保证a 仍然能够比较两个对象而没有“ ”部分? 换句话说,给出以下代码: 为什么即使不为Collections.sort()的声明指定“ ”,编译器也不足够聪明地知道这是可以的? 问题答案: Josh Bloch今年在Google I / O上做了一个名为“ 有效Java重新