@Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface OneToMany
If the collection is defined using generics to specify the element type, the associated target entity type need not be specified; otherwise the target entity class must be specified.
Example 1: One-to-Many association using generics
In Customer class:
@OneToMany(cascade=ALL, mappedBy="customer")
public Set getOrders() { return orders; }
In Order class:
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }
Example 2: One-to-Many association without using generics
In Customer class:
@OneToMany(targetEntity=com.acme.Order.class, cascade=ALL,
mappedBy="customer")
public Set getOrders() { return orders; }
In Order class:
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }
| 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
The field that owns the relationship.
|
Class |
targetEntity
(Optional) The entity class that is the target
of the association.
|
public abstract Class targetEntity
Defaults to the parameterized type of the collection when defined using generics.
public abstract CascadeType[] cascade
Defaults to no operations being cascaded.
public abstract FetchType fetch
EAGER strategy is a
requirement on the persistenceprovider runtime
that the associatedentities must be eagerly fetched.
The LAZY strategy is a hint
to the persistence provider runtime.public abstract String mappedBy
Copyright © 2025. All rights reserved.