使用JAXB将xml映射到jpa实体
难道不可能使用JAXB将xml映射到jpa实体吗?日食莫西会有帮助吗 注意:我是专家组的负责人和成员 是的,您可以将JPA实体映射到XML,下面是一些方法,EclipseLink JAXB(MOXy)使这变得更容易 1。双向映射 客户 地址 了解更多信息使用JAXB将xml映射到jpa实体,jpa,jaxb,eclipselink,moxy,Jpa,Jaxb,Eclipselink,Moxy,难道不可能使用JAXB将xml映射到jpa实体吗?日食莫西会有帮助吗 注意:我是专家组的负责人和成员 是的,您可以将JPA实体映射到XML,下面是一些方法,EclipseLink JAXB(MOXy)使这变得更容易 1。双向映射 客户 地址 了解更多信息 2。映射复合键关系 我们通常考虑将对象树映射到XML,但是JAXB支持使用对象树的组合来映射表示图形的节点之间的关系。标准的机制是一个键对一个外键。JPA支持复合键的概念,MOXy也支持使用@XmlKey和@XmlJoinNodes(
@XmlKey
和@XmlJoinNodes
(类似于JPA中的@XmlJoinColumns
)
员工
了解更多信息
@XmlKey
和@XmlJoinNodes
(类似于JPA中的@XmlJoinColumns
)
员工
了解更多信息
import javax.persistence.*;
@Entity
public class Customer {
@Id
private long id;
@OneToOne(mappedBy="customer", cascade={CascadeType.ALL})
private Address address;
}
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;
}
@Entity
@IdClass(EmployeeId.class)
public class Employee {
@Id
@Column(name="E_ID")
@XmlID
private BigDecimal eId;
@Id
@XmlKey
private String country;
@OneToMany(mappedBy="contact")
@XmlInverseReference(mappedBy="contact")
private List<PhoneNumber> contactNumber;
}
@Entity
public class PhoneNumber {
@ManyToOne
@JoinColumns({
@JoinColumn(name="E_ID", referencedColumnName = "E_ID"),
@JoinColumn(name="E_COUNTRY", referencedColumnName = "COUNTRY")
})
@XmlJoinNodes( {
@XmlJoinNode(xmlPath="contact/id/text()", referencedXmlPath="id/text()"),
@XmlJoinNode(xmlPath="contact/country/text()", referencedXmlPath="country/text()")
})
private Employee contact;
}