Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/UserGuide/MOXy/Relationships/Privately Owned/One-to-One
< EclipseLink | UserGuide | MOXy | Relationships | Privately Owned
Revision as of 15:56, 22 December 2010 by Rick.barkhouse.oracle.com (Talk | contribs)
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Examples
Mapping to an Attribute
Given the XML schema in this example, the figure below illustrates an XML direct mapping to an attribute in a corresponding XML document.
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer" type="customer-type"/> <xsd:complexType name="customer-type"> <xsd:attribute name="id" type="xsd:integer"/> </xsd:complexType> </xsd:schema>
The following example shows how to annotate your Java class to obtain this mapping with EclipseLink. All that is needed is the standard JAXB @XmlAttribute annotation.
@XmlRootElement public class Customer { @XmlAttribute public Integer id; }
The example below shows how to to define your mapping information in EclipseLink's OXM metadata format.
... <java-type name="Customer"> <xml-root-element name="customer"/> <java-attributes> <xml-attribute java-attribute="id"/> </java-attributes> </java-type> ...
One-to-One Composite Collection Mapping
With EclipseLink Annotations
Use the @OneToOne annotation:
@Entity public class Employee { @OneToOne(mappedBy="resident") private Address residence; }
Use the EclipseLink extension @XmlInverseReference to map the back-pointer:
@Entity public class Address { @OneToOne @JoinColumn(name="E_ID") @XmlInverseReference(mappedBy="residence") private Employee resident; }