我有一个带有某些参数的源类Entity和一个目标类Dto类。 现在,实体类具有其他类的参数,但是在dto类中,我直接使用这些参数,而不使用dto中的其他类引用。
问题是:在执行BeanUtils.copyProperties(source,target)
时,那些引用了其他类的属性无法将副本复制到dto类。
实体类:
Public class Entity{
private A a;
private String add;
}
Public class A{
private String name;
}
Dto class :
public class Dto{
private String add;
private String name; // here instead of class A i directly took the param of class A as per requirement.
}
我该如何BeanUtils.copyProperties(Entity,Dto);
来复制所有属性。
实体类包含来自其他实体类的参数,但是dto不包含对其他类的引用,而是直接具有其他类的参数。
答案 0 :(得分:0)
Spring具有转换器的概念,当它必须在类之间进行转换时会自动使用。 BeanUtils.copyProperties
似乎没有使用它,但是使用BeanWrapper
来编写一个遍历属性并尝试使用Converters(在这种情况下是从A到String的Converters)进行复制的替代方案应该很困难属性。
或者,还有其他可以执行类似任务的库:Dozer,ModelMapper,MapStruct仅举几个例子,没有任何偏好。