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

如何使用ModelMapper将嵌套对象转换为嵌套DTO?

庄瀚玥
2023-03-14

当我试图使用ModelMapper将嵌套的java对象转换为嵌套的DTO时,我遇到了一个问题。在父DTO对象中,子DTO为null。以下是代码片段。

实体类:

public class User {
    private String name;
    private Address address;
    private Product product;
}

public class Address { 
    private String area;
    private String city;
}

public class Product {
    private Integer productId;
    private String productName;
    private Double productPrice;
 } 

DTO的课程:

public class UserDTO {
   private String name;
   private AddressDTO address;
   private ProductDTO product;
}

public class AddressDTO {
   private String area;
   private String city;
}

public class ProductDTO {
   private Integer productId;
   private String productName;
   private Double productPrice;
}

这是映射器代码:

ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.LOOSE);
UserDTO userDTO = mapper.map(user, UserDTO.class);
System.out.println("Output User DTO : " + userDTO );

输出:

输出用户DTO:UserDTO[名称=xyz,地址=null,产品=null]

在这里,我想将用户实体转换为UserDTO-dto。我得到了地址和产品DTO的空值。我在这里到底缺少什么?有人知道吗?

注意:我在实体和DTO中添加了getter、Setter和toString()方法。

共有1个答案

宣瀚
2023-03-14

在这里,我找到了嵌套DTO到实体的解决方案,反之亦然。我缺少了一些我在下面添加的ModelMapper配置。

mapper.getConfiguration()
      .setFieldMatchingEnabled(true)
      .setFieldAccessLevel(AccessLevel.PRIVATE)
      .setMatchingStrategy(MatchingStrategies.STANDARD);
 类似资料:
  • 我有一个嵌套的JSON对象,如下所示: 我想将其转换为: 我如何使用JOLT实现这一点?感谢您的参与。

  • 问题内容: 我正在寻找一种优雅的方式来获取数据,该数据使用具有一些嵌套dict和列表(例如javascript样式对象语法)的dict进行属性访问。 例如: 应该以这种方式访问​​: 我认为,没有递归是不可能的,但是获得字典对象样式的一种好方法是什么? 问题答案: 更新:在Python 2.6及更高版本中,请考虑namedtuple数据结构是否满足你的需求: 备选方案(原始答案内容)为: 然后,你

  • 问题内容: 有人可以提供一个示例或参考,该示例或参考提供一种使用Jackson库将嵌套JAVA对象转换为JSON输出的方法的方法。我没有转换平面JAVA对象的问题。但是,JSON库显示嵌套的对象名称和类型,而不是其子对象。我几乎可以利用此处提供的相同代码http://www.mkyong.com/java/jackson-2-convert- java-object-to-from-json/ 。

  • 我遇到了一个问题,我的程序只在的一次迭代中结束,我不确定不合逻辑的代码在哪里。 全球给予: 我复杂的嵌套从这里开始,但我不确定如何修复它,以便它迭代通过和数字for-循环: 我得到以下输出: 我从来没有得到Susie的数据,我很早就回来了,但似乎不知道在哪里。对于问题所在(甚至重构)的任何帮助/指导都将不胜感激。提前谢谢!

  • 问题内容: 我是Hibernate和HQL的新手。我想在HQL中编写一个更新查询,其SQL等效项如下: 是的PK ,是的FK和PK 。有一对一的映射。 相应的Java类是Patient(患者)(具有lastName,firstName,doctorId字段)和Doctor(具有DoctorId字段)。 谁能告诉我上面的SQL查询的HQL等效项是什么? 非常感谢。 问题答案: 如果您检查规范,则可以