Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/MOXy/Relationships/Privately Owned/One-to-One"

m (Replacing page with 'Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/privately_owned_relationships001.htm')
 
(72 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{EclipseLink_UserGuide
+
Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/privately_owned_relationships001.htm
|info=y
+
|examples=y
+
|example=* [[EclipseLink/Examples/MOXy/JPA/Relationships#One_To_One_and_Embedded|One-to-one]]
+
}}
+
 
+
=Mapping One-to-One Relationships=
+
This section demonstrates several ways to map a one-to-one relationship between objects.
+
 
+
==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.
+
 
+
<source lang="xml">
+
<?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>
+
</source>
+
 
+
[[Image:dxmatt.gif|XML Direct Mapping to an Attribute]]<br><br>
+
 
+
The following example shows how to annotate your Java class to obtain this mapping with EclipseLink. All that is needed is the standard JAXB <tt>@XmlAttribute</tt> annotation.
+
 
+
<source lang="java">
+
@XmlRootElement
+
public class Customer {
+
  @XmlAttribute
+
  public Integer id;
+
}
+
</source>
+
 
+
The example below shows how to to define your mapping information in EclipseLink's OXM metadata format.
+
 
+
<source lang="xml">
+
...
+
<java-type name="Customer">
+
  <xml-root-element name="customer"/>
+
  <java-attributes>
+
      <xml-attribute java-attribute="id"/>
+
  </java-attributes>
+
</java-type>
+
...
+
</source>
+
 
+
<br><br>
+
 
+
= One-to-One Composite Collection Mapping =
+
 
+
 
+
 
+
== With EclipseLink Annotations ==
+
Use the '''@OneToOne''' annotation:
+
<source lang="java">
+
@Entity
+
public class Employee {
+
+
    @OneToOne(mappedBy="resident")
+
    private Address residence;
+
+
}
+
</source>
+
 
+
Use the EclipseLink extension '''@XmlInverseReference''' to map the back-pointer:
+
<source lang="java">
+
@Entity
+
public class Address {
+
+
    @OneToOne
+
    @JoinColumn(name="E_ID")
+
    @XmlInverseReference(mappedBy="residence")
+
    private Employee resident;
+
+
}
+
</source>
+
 
+
{{EclipseLink_MOXy
+
|version=2.2.0 DRAFT
+
|previous=[[EclipseLink/UserGuide/MOXy/Relationships/Privately Owned|Privately owned]]
+
|next=[[EclipseLink/UserGuide/MOXy/Relationships/Privately_Owned/One-to-Many|One-to-many]]
+
|up=[[EclipseLink/UserGuide/MOXy/Relationships/Privately Owned|Privately owned]]
+
}}
+

Latest revision as of 10:21, 8 November 2012

Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/privately_owned_relationships001.htm

Back to the top