This annotation defines a single-valued association to
another entity that has one-to-one multiplicity. It is not
normally necessary to specify the associated target entity
explicitly since it can usually be inferred from the type
of the object being referenced.
Example 1: One-to-one association that maps a foreign key column
On Customer class:
@OneToOne(optional=false)
@JoinColumn(
name="CUSTREC_ID", unique=true, nullable=false, updatable=false)
public CustomerRecord getCustomerRecord() { return customerRecord; }
On CustomerRecord class:
@OneToOne(optional=false, mappedBy="customerRecord")
public Customer getCustomer() { return customer; }
Example 2: One-to-one association that assumes both the source and target share the same primary key values.
On Employee class:
@Entity
public class Employee {
@Id Integer id;
@OneToOne @PrimaryKeyJoinColumn
EmployeeInfo info;
...
}
On EmployeeInfo class:
@Entity
public class EmployeeInfo {
@Id Integer id;
...
}
|