@Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface OneToOne
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; ... }
Modifier and Type | Optional Element and Description |
---|---|
CascadeType[] |
cascade
(Optional) The operations that must be cascaded to
the target of the association.
|
FetchType |
fetch
(Optional) Whether the association should be lazily
loaded or must be eagerly fetched.
|
String |
mappedBy
(Optional) The field that owns the relationship.
|
boolean |
optional
(Optional) Whether the association is optional.
|
Class |
targetEntity
(Optional) The entity class that is the target of
the association.
|
public abstract Class targetEntity
Defaults to the type of the field or property that stores the association.
public abstract CascadeType[] cascade
By default no operations are cascaded.
public abstract FetchType fetch
EAGER
strategy is a requirement on the persistence provider runtime that
the associated entity must be eagerly fetched. The LAZY
strategy is a hint to the persistence provider runtime.public abstract boolean optional
public abstract String mappedBy
Copyright © 2021. All rights reserved.