我面临着将数据从两个源映射到具有不同数据类型的单个目标时遇到的问题。我尝试使用关系映射器,但这并没有帮助我,或者可能我做错了什么,即在目标位置仅保留了第二个源映射。 将Dob映射,名称从A类映射到C类,将B类城市映射到C类。请参阅DOB的数据类型在C中是不同的。
我的代码如下:
RelationalJMapper rm = new RelationalJMapper(C.class);
C c= (C) rm.manyToOne(a);
c= (C)rm.manyToOne(b);
执行代码后,c仅设置了city的值。未设置DOB和名称。
如果我只是将A用作源,那么它也会有问题,因为A中的DOB类型为Date,而CLass C中的cDob类型为String。我知道在Dozer中可以很好地处理这种类型映射,但是不确定如何通过JMapper处理它。 我正在尝试使用基于注释的解决方案。
Class A{
String name;
String id;
Date dob;
}
Class B{
String city;
String state;
String pincode;
}
Class C{
@JMap(attributes = {"name"},
classes = {A.class})
String cName;
@JMap(attributes = {"dob"},
classes = {A.class})
String cDob;
@JMap(attributes = {"city"},
classes = {C.class})
String cCity;
}