Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 深度属性映射的Dozer映射_Xml_Dozer - Fatal编程技术网

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