我正在使用Dozer映射。我有两个pojo1和pojo2。 pojo1值要映射到pojo2。 Pojo1有3个属性,Pojo2有4个属性。我可以将pojo1的3个属性映射到pojo2但是映射第四个属性我没有pojo1中的属性。为了映射第四个属性,我无法从pojo1获取值,直接我需要从Enum中获取值。请帮助我是否可以通过映射文件为任何属性赋值?
来自enum的值不直接来自pojo1 第四个属性
谢谢!
答案 0 :(得分:1)
据我所知,这不方便。执行此操作的唯一方法是使用自定义转换器,或修改其中一个POJO。
使用custom converter,您可以将pojo1.field3映射到pojo2.field4。转换器完全忽略pojo1.field3,只是将pojo2.field4设置为你的枚举值。
另一个解决方案是只修改pojo1并添加一个始终返回枚举值的field4。
第三个解决方案是修改pojo2,只需在默认构造函数中设置field4。如果您无法修改默认构造函数,则可以使用custom create method或custom bean factory来实现相同的目标。
我一直在做推土机映射,并且想要一些更方便的解决方案。不幸的是,我不认为有任何自负。
让我知道它是如何为你服务的!