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.
Difference between revisions of "EclipseLink/UserGuide/JPA/Basic JPA Development/Mapping/Relationship Mappings/Common Relationship Configurations/JoinFetch"
m |
m |
||
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
|api=y | |api=y | ||
|apis= | |apis= | ||
− | * [http://www.eclipse.org/eclipselink/api/latest/ | + | * [http://www.eclipse.org/eclipselink/api/latest/org/eclipse/persistence/annotations/JoinFetch.html @JoinFetch] |
+ | |||
}} | }} | ||
− | = | + | =@JoinFetch= |
− | + | ||
− | + | Use the <tt>@JoinFetch</tt> annotation to enable the joining and reading of the related objects in the same query as the source object. | |
− | + | {{EclipseLink_Note | |
− | = | + | |note=We recommend setting join fetching at the query level, as not all queries require joining. |
+ | }} | ||
You can specify the <tt>@JoinFetch</tt> annotation for the following mappings: | You can specify the <tt>@JoinFetch</tt> annotation for the following mappings: | ||
− | * <tt> | + | * <tt>@OneToOne</tt> |
* <tt>[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Relationship_Mappings/Collection_Mappings/OneToMany|@OneToMany]]</tt> | * <tt>[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Relationship_Mappings/Collection_Mappings/OneToMany|@OneToMany]]</tt> | ||
− | * <tt> | + | * <tt>@ManyToOne</tt> |
* <tt>[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Relationship_Mappings/Collection_Mappings/ManyToMany|@ManyToMany]]</tt> | * <tt>[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Relationship_Mappings/Collection_Mappings/ManyToMany|@ManyToMany]]</tt> | ||
− | * <tt> | + | * <tt>@BasicCollection</tt> (deprecated) |
− | * <tt> | + | * <tt>@BasicMap</tt> (deprecated) |
− | |||
− | |||
− | |||
− | |||
− | Alternatively, you can use batch reading, especially for collection relationships. | + | Alternatively, you can use batch reading, especially for collection relationships.]]. |
{{EclipseLink_AttributeTable | {{EclipseLink_AttributeTable | ||
− | |caption=@JoinFetch Annotation | + | |caption=@JoinFetch Annotation Attributes |
|content=<tr> | |content=<tr> | ||
<td>'''<tt>value</tt>'''</td> | <td>'''<tt>value</tt>'''</td> | ||
Line 42: | Line 39: | ||
* <tt>OUTER</tt> – This option provides the outer join fetching of the related object.<br>Note: Outer joining allows for null or empty values.<br> | * <tt>OUTER</tt> – This option provides the outer join fetching of the related object.<br>Note: Outer joining allows for null or empty values.<br> | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</td> | </td> | ||
<td><tt>JoinFetchType.INNER</tt></td> | <td><tt>JoinFetchType.INNER</tt></td> |
Latest revision as of 12:07, 17 May 2011
EclipseLink JPA
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
@JoinFetch
Use the @JoinFetch annotation to enable the joining and reading of the related objects in the same query as the source object.
Note: We recommend setting join fetching at the query level, as not all queries require joining.
You can specify the @JoinFetch annotation for the following mappings:
- @OneToOne
- @OneToMany
- @ManyToOne
- @ManyToMany
- @BasicCollection (deprecated)
- @BasicMap (deprecated)
Alternatively, you can use batch reading, especially for collection relationships.]].
Attribute | Description | Default | Required? |
---|---|---|---|
value | Set this attribute to the org.eclipse.persistence.annotations.JoinFetchType enumerated type of the fetch that you will be using.
The following are the valid values for the JoinFetchType:
|
JoinFetchType.INNER | No |
The following example shows how to use the @JoinFetch annotation to specify Employee field managedEmployees.
Example: @JoinFetch Annotation
@Entity public class Employee implements Serializable { ... @OneToMany(cascade=ALL, mappedBy="owner") @JoinFetch(value=OUTER) public Collection<Employee> getManagedEmployees() { return managedEmployees; } ... }