Отсутствует CycleRecoverable JAXB Java - PullRequest
1 голос
/ 31 октября 2011

Я пытаюсь использовать интерфейс CycleRecoverable для управления циклическими проблемами в моей объектной модели для двунаправленных отношений.Руководства, такие как this и this , говорят, что вы должны использовать CycleRecoverable, но у меня его нет в моем классе.Я запутался в том, что мне на самом деле нужно, и объяснил, зачем мне это нужно.Я не использую Maven, поэтому я не могу следовать второму совету по ссылкам, и даже если я использовал Maven, я не понимаю, почему мне нужно больше пакетов для использования JAXB, который, как я думал, был включен вSE6.Какие файлы JAR мне нужно включить, чтобы использовать этот интерфейс и почему?Единственный CycleRecoverable на моем classpath - это com.sun.xml.internal.bind.CycleRecoverable

(не) официальное руководство по JAXB отмечает интерфейс, но не упоминает, как на самом деле его использовать

1 Ответ

0 голосов
/ 31 октября 2011

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

В качестве альтернативы механизму CycleRecoverable в эталонной реализации JAXB вас может заинтересовать расширение @XmlInverseReference в MOXy:

Клиент

import javax.persistence.*;

@Entity
public class Customer {

    @Id
    private long id;

    @OneToOne(mappedBy="customer", cascade={CascadeType.ALL})
    private Address address;

}

Адрес

Аннотация @XmlInverseReference указывает имя поля, которое отображает другое направление этого отношения. Это похоже на то, как двунаправленные отношения отображаются в JPA.

import javax.persistence.*;
import org.eclipse.persistence.oxm.annotations.*;

@Entity
public class Address implements Serializable {

    @Id
    private long id;

    @OneToOne
    @JoinColumn(name="ID")
    @MapsId
    @XmlInverseReference(mappedBy="address")
    private Customer customer;

}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...