@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 © 2024. All rights reserved.