Xml 深度属性映射的Dozer映射
我是推土机的新手,有这三门课Xml 深度属性映射的Dozer映射,xml,dozer,Xml,Dozer,我是推土机的新手,有这三门课 class PersonEntity { Set<AddressEntity> addresses; } class Person { AddressList addresses; } class AddressList { List<Address> address; } 有没有一种方法可以让推土机绘制出这样的地图 这是我到目前为止所拥有的 <mapping> <class-a>
class PersonEntity {
Set<AddressEntity> addresses;
}
class Person {
AddressList addresses;
}
class AddressList {
List<Address> address;
}
有没有一种方法可以让推土机绘制出这样的地图
这是我到目前为止所拥有的
<mapping>
<class-a>domain.entity.AddressEntity</class-a>
<class-b bean-factory="org.dozer.factory.JAXBBeanFactory">
com.rackspace.customer.Address
</class-b>
<field>
<a get-method="isPrimary">isPrimary</a>
<b set-method="setPrimary">primary</b>
</field>
</mapping>
<mapping>
<class-a>domain.entity.PersonEntity</class-a>
<class-b bean-factory="org.dozer.factory.JAXBBeanFactory">com.rackspace.customer.Contact</class-b>
<field>
<a>userId</a>
<b>username</b>
</field>
<field custom-converter="domain.converter.PersonNumberAdapter">
<a>personNumber</a>
<b>contactNumber</b>
</field>
<field>
<a>addresses</a>
<b>addresses.address</b>
<a-hint>domain.entity.AddressEntity</a-hint>
<b-hint>com.rackspace.customer.Address</b-hint>
</field>
</mapping>
如何告诉第二个映射器重用现有映射器将AddressEntity转换为Address,反之亦然?
这不行,有人能帮我吗
<b is-accessible="true">addresses.address</b>
经过一个小时的调试,我发现它试图访问setter方法来设置值,因为我的JAXB对象上没有任何setter,所以失败了
一旦我添加了“是可接近的真实”,它就像一个符咒
来自推土机常见问题解答
映射字段时是否会调用getter和setter方法
对。您可以通过为任何映射显式指定is accessible=true来绕过此默认行为。如果指定了可访问,则直接访问包含私有字段的字段,并绕过getter/setter方法。除非您处理的是一个不包含任何getter或setter方法的非正统数据对象,否则不建议您设置isaccessible=true