一尘不染

排除JAXB中的字段

java

我有2节课:

@XmlRootElement
public class A {

    private Long id;
    private B b;

    // setters and getters
}

@XmlRootElement
public class B {

    private Long id;
    private String field1;
    private String field2;

    // setters and getters
}

默认情况下,如果我改变类的实例A到XML,我将所有的字段(id)和引用B类字段(idfield1field2)是这样的:

<a>
    <id>2</id>
    <b>
        <id>5</id>
        <field1>test1</field1>
        <field2>test3</field2>
    </b>
</a>

是否可以修改引用的类的 哪些
字段B包含在该类的XML中A?例如,我想说的是,当我转换A类的实例时,我只想idB该类中获取(否field1field2字段),所以我想要获得:

<a>
    <id>2</id>
    <b>
        <id>5</id>
    </b>
</a>

我并不想永久注释B类(使用@XMLTransient@XMLElement)来实现它,因为有我在其中要导出整个案件B类的是(与idfield1field2)。
我只是不想导出所有这些领域时在B类是从引用A

JAX-B甚至有可能吗?


阅读 354

收藏
2020-12-03

共1个答案

一尘不染

您可以@XmlTransient在现场使用。同样,默认的JAXB绑定可以根据需要通过使用自定义绑定声明在全局范围内或根据具体情况进行覆盖。

请查看Baeldung网站上的JAXB指南,以获取更多示例。

2020-12-03