JPA в выпуск JAXB - PullRequest
       48

JPA в выпуск JAXB

3 голосов
/ 18 августа 2011

У меня есть объекты, созданные из eclipseLink. Я пытаюсь использовать одни и те же объекты для генерации xml. У меня есть ссылка на первичный ключ внутри класса, и я не уверен, какую аннотацию мне нужно использовать для получения желаемого xml , У меня

public class ABC implements Serializable {
private static final long serialVersionUID = 1L;

@EmbeddedId
private NamePK id;

@XmlElement
private String address1;

    @XmlElement
private String address1;

... }

 public class NamePK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;

@Column(name="county")
@XmlTransient
private String county;

@Column(name="NAME")
@XmlElement
private String name;

....

}

Каким образом аннотация на NamePk должна быть для меня, чтобы получить вывод xml как

 <name>XXX</name>
 <Address1>YYY</Address1>
 <Address2>ZZZ</Address2>

Нужно ли аннотировать на обоих уровнях PK? (Уровень класса и справка)

Спасибо

1 Ответ

4 голосов
/ 18 августа 2011

Примечание: Я являюсь лидером EclipseLink JAXB (MOXy) и являюсь членом группы экспертов JAXB 2 ( JSR-222 ).

Для этого можно использовать реализацию MOXy JAXB в EclipseLink:

ABC

Вы можете использовать @XmlPath("."), чтобы иметь встроенный маршал ID /unmarshal на том же уровне, что и ваш ABC класс:

public class ABC implements Serializable {

    private static final long serialVersionUID = 1L;

    @EmbeddedId
    @XmlPath(".")
    private NamePK id;

    @XmlElement
    private String address1;

    @XmlElement
    private String address1;

}

для получения дополнительной информации

...