java - Pojo 到 DTO - Bean 映射
问题描述
我经历了 stackoverflows、ModelMapper、Dozer 等。我无法弄清楚将实体映射到 DTO 的现有逻辑。
以下是实体和 DTO 的类:
package com.entity;
public class EmployeeRequest {
private User user;
private String userId;
public EmployeeRequest(){
}
//Getters and Setters Below
}
package com.entity;
public class User {
private Address address;
private Name name;
public User(){
}
//Getters and Setters Below
}
package com.entity;
public class Address {
private int flatNo;
private String city;
public Address(){
}
//Getters and Setters Below
}
package com.entity;
public class Name {
private String firstName;
private String lastName;
public Name(){
}
//Getters and Setters Below
}
package com.dto;
public class EmployeeRequestDTO {
private UserDTO user;
private String userId;
public EmployeeRequestDTO(){
}
//Getters and Setters Below
}
package com.dto;
public class UserDTO {
private AddressDTO address;
private NameDTO name;
public UserDTO() {
}
//Getters and Setters Below
}
package com.dto;
public class AddressDTO {
private int flatNo;
private String city;
public AddressDTO() {
}
//Getters and Setters Below
}
package com.dto;
public class NameDTO {
private String firstName;
private String lastName;
public NameDTO(){
}
//Getters and Setters Below
}
//映射类:
package com.service;
import com.dto.EmployeeRequestDTO;
import com.entity.Address;
import com.entity.EmployeeRequest;
import com.entity.Name;
import com.entity.User;
public class EntityModelMapperService {
public static void main(String[] args) {
Address address=new Address();
address.setFlatNo(72);
address.setCity("Kayalpatnam");
Name name=new Name();
name.setFirstName("Abdul");
name.setLastName("Basith");
User user = new User();
user.setAddress(address);
user.setName(name);
EmployeeRequest employeeRequest = new EmployeeRequest();
employeeRequest.setUser(user);
}
}
如何将实体值映射到 DTO?一旦分配,实体中的任何更改都不应影响 DTO,反之亦然。
解决方案
以下 1 行足以映射:
EmployeeRequestDTO employeeRequestDTO = new ModelMapper().map(employeeRequest, EmployeeRequestDTO.class);
推荐阅读
- python - 无法使用flask和pyodbc连接到mysql服务器
- sapui5 - 将 Angular 应用程序从 neo 迁移到 SAP Cloud Foundry
- python - python - 如何通过python中的id合并python中的两个api?
- intellij-idea - 用于转储整个堆栈/调用跟踪以进行比较的资源
- phpspreadsheet - PHPSpreadsheet 无法保存从模板加载的折线图(被“另一个用户”锁定)
- r - Ewma 的时间序列回报
- flutter - Flutter 与其他应用程序共享链接,并带有单独的描述
- cordova - 离子cordova插件cordova-plugin-googleplus错误10
- python - Pygame Zero 中 Actor 函数的“pos”不起作用
- c# - DDD 逻辑中的批量操作