我正在尝试将列表中带有object1的所有对象复制到带有object2的列表中:
下面是我的代码片段:
List<EmployeeAmManegmentModel> am = employee.amEmployeeDeatails();
List<EmployeeRmManegmentModel> rm = employee.rmEmployeeDeatails();
List<EmployeeGenericModel> GM = new ArrayList<>();
在这里,我尝试将am
和rm
复制到GM
。这三个模型都具有相同的参数:
EmployeeAmManegmentModel:
@Entity
@Table(name = "PROFILE_AM")
public class EmployeeAmManegmentModel {
@Id
@GeneratedValue
@Column(name = "AM_ID")
private Long id;
@Column(name = "NAME")
private String name;
@Column(name = "CONTACT_NUMBER")
private Long contactNumber;
@Column(name = "EMAIL_ID")
private String emailId;
@Column(name = "STATUS")
private Long status;
@Column(name = "EMPLOYEE_TYPE")
public String employeeType = "AM"; ..... getters and setters
EmployeeRmManegmentModel
@Id
@GeneratedValue
@Column(name = "RM_ID")
private Long id;
@Column(name = "NAME")
private String name;
@Column(name = "CONTACT_NUMBER")
private Long contactNumber;
@Column(name = "EMAIL_ID")
private String emailId;
@Column(name = "STATUS")
private Long status;
@Column(name = "EMPLOYEE_TYPE")
public String employeeType = "RM";
EmployeeGenericModel
private Long id;
private String name;
private Long contactNumber;
private String emailId;
private Long status;
private String employeeType;
是否可以将结果从不同对象类型的一个列表复制到另一列表?
谢谢。
答案 0 :(得分:1)
不太确定这与Hibernate有何关系。您具有Hibernate实体,但是将属性从一个类的对象复制到另一类的对象不会影响Hibernate。
没有完全自动的方法来执行此操作。但是,存在用于将不同类的对象相互映射的库。
Dozer是一种具有非常全面的映射功能的库。
答案 1 :(得分:0)
如果EmployeeAMMenegement和EMplyeeRMManagement模型是同一类,并且具有其他几种方法,则可以从这两个类中使用extended EmployeeGenericModel。
但是您可以通过从AM或RM类创建映射器来做到这一点。
public class EmployeeAmManegmentModel {
public EmployeeAmMenegementModel(EmployeeGenericModel egm){
this.id = egm.id;
this.name = egm.name;
//dst
}
}
谢谢
答案 2 :(得分:0)
如果我正确理解了您的任务,则可以执行以下操作:
Gson gson = new Gson();
List<EmployeeGenericModel> GM = am.stream()
.map(x -> gson.fromJson(gson.toJson(x), EmployeeGenericModel.class))
.collect(Collectors.toList());
GM.addAll(rm.stream()
.map(x -> gson.fromJson(gson.toJson(x), EmployeeGenericModel.class))
.collect(Collectors.toList());
答案 3 :(得分:0)
Java中有两个BeanUtils.copyProperties(parameter1,parameter2)。
一个是
org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest,Object orig)
另一个是
org.springframework.beans.BeanUtils.copyProperties(对象源,对象目标)