使用JAXB的好处是它是具有多个实现的标准运行时(就像JPA一样)。
如果使用Eclipselink JAXB(MOXy),则可以使用许多扩展来处理JPA实体,包括双向关系。这是使用MOXy
@XmlInverseReference批注完成的。它的作用类似于元帅上的@XmlTransient,并在元帅上填充目标与源的关系。
http://wiki.eclipse.org/Eclipselink/Examples/MOXy/JPA/Relationships
@Entity @XmlRootElement public class Contact { @Id private Long contactId; @oneToMany(mappedBy = "contact") private List<ContactAddress> addresses;...}@Entity @XmlRootElement public class ContactAddress { @Id private Long contactAddressId; @ManyToOne @JoinColumn(name = "contact_id") @XmlInverseReference(mappedBy="addresses") private Contact contact; private String address;...}其他扩展可用,包括对复合键和嵌入式键类的支持。
要指定Ecliselink MOXy JAXB实现,您需要在模型类(即Contract)中包含jaxb.properties文件,并具有以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory



