我遇到的情况是我有一个对象(obj1)必须映射到另一个对象(obj2),但是在此Mapping中,某些obj2的字段已经具有一些值,而其他字段为null,所以我必须选择仅在obj2中为空的那些字段,然后将数据从obj1发送到那些字段。我不确定在这种情况下ModelMapper是否有用。
谢谢。
答案 0 :(得分:1)
对于直接对象到对象的复制,您可以使用
copyProperties(Object dest,Object orig)
您可以使用单个副本
setProperty(对象bean,字符串名称,对象值)
这是我在项目中使用过的替代解决方案
答案 1 :(得分:1)
根据需要,您可以自己编写一个简单的映射器(使用Java反射API来减少样板),也可以使用Dozer
之类的工具。答案 2 :(得分:0)
我推荐mapstruct(更快的类型安全和易于理解的)。 Java反射库太慢,并且Java的执行时间可能会引发Error。
答案 3 :(得分:0)
您可以使用ModelMapper。该库用于执行此实体-DTO转换。
<dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>0.7.4</version> </dependency>
@Bean public ModelMapper modelMapper() { return new ModelMapper(); }
private Employee convertToDto(EmployeeDto employeeDto) { Employee employee = modelMapper.map(employeeDto, Employee.class); return employee; }