Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/JPA/Basic JPA Development/Mapping/Basic Mappings/Lazy Basics"

m
m
Line 14: Line 14:
 
If you are developing your application in a Java EE environment, you only have to set fetch to <tt>javax.persistence.FetchType.LAZY</tt>, and EclipseLink persistence provider will supply all the necessary functionality.
 
If you are developing your application in a Java EE environment, you only have to set fetch to <tt>javax.persistence.FetchType.LAZY</tt>, and EclipseLink persistence provider will supply all the necessary functionality.
  
When using a @OneToOne or @ManyToOne mapping in a Java SE environment, to configure EclipseLink JPA to perform lazy loading when the <tt>fetch</tt> attribute is set to <tt>FetchType.LAZY</tt>, configure either dynamic or static weaving.
+
When using a one-to-one or many-to-one mapping in a Java SE environment, to configure EclipseLink JPA to perform lazy loading when the <tt>fetch</tt> attribute is set to <tt>FetchType.LAZY</tt>, configure either dynamic or static weaving.
  
When using a @OneToOne or @ManyToOne mapping in a Java SE environment that does not permit the use of <tt>-javaagent</tt> on the JVM command line, to configure EclipseLink JPA to perform lazy loading when annotation attribute <tt>fetch</tt> is set to <tt>javax.persistence.FetchType.LAZY</tt>, you can use static weaving.
+
When using a one-to-one or many-to-one mapping in a Java SE environment that does not permit the use of <tt>-javaagent</tt> on the JVM command line, to configure EclipseLink JPA to perform lazy loading when annotation attribute <tt>fetch</tt> is set to <tt>javax.persistence.FetchType.LAZY</tt>, you can use static weaving.
  
 
The [[#Table 19-33|EclipseLink JPA Support for Lazy Loading by Mapping Type]] table, below, lists EclipseLink JPA support for lazy loading by mapping type.
 
The [[#Table 19-33|EclipseLink JPA Support for Lazy Loading by Mapping Type]] table, below, lists EclipseLink JPA support for lazy loading by mapping type.
Line 38: Line 38:
 
|- align="left" valign="top"
 
|- align="left" valign="top"
 
| id="r2c1-t52" headers="r1c1-t52" align="left" |
 
| id="r2c1-t52" headers="r1c1-t52" align="left" |
@ManyToMany
+
Many-to_many
 
| headers="r2c1-t52 r1c2-t52" align="left" |
 
| headers="r2c1-t52 r1c2-t52" align="left" |
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt> (default).
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt> (default).
Line 46: Line 46:
 
|- align="left" valign="top"
 
|- align="left" valign="top"
 
| id="r3c1-t52" headers="r1c1-t52" align="left" |
 
| id="r3c1-t52" headers="r1c1-t52" align="left" |
@OneToMany
+
One-to-many
 
| headers="r3c1-t52 r1c2-t52" align="left" |
 
| headers="r3c1-t52 r1c2-t52" align="left" |
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt> (default).
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt> (default).
Line 54: Line 54:
 
|- align="left" valign="top"
 
|- align="left" valign="top"
 
| id="r4c1-t52" headers="r1c1-t52" align="left" |
 
| id="r4c1-t52" headers="r1c1-t52" align="left" |
@OneToOne
+
One-to-one
 
| headers="r4c1-t52 r1c2-t52" align="left" |
 
| headers="r4c1-t52 r1c2-t52" align="left" |
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.
Line 67: Line 67:
 
|- align="left" valign="top"
 
|- align="left" valign="top"
 
| id="r5c1-t52" headers="r1c1-t52" align="left" |
 
| id="r5c1-t52" headers="r1c1-t52" align="left" |
@ManyToOne
+
Many-to-one
 
| headers="r5c1-t52 r1c2-t52" align="left" |
 
| headers="r5c1-t52 r1c2-t52" align="left" |
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.
Line 80: Line 80:
 
|- align="left" valign="top"
 
|- align="left" valign="top"
 
| id="r6c1-t52" headers="r1c1-t52" align="left" |
 
| id="r6c1-t52" headers="r1c1-t52" align="left" |
@Basic
+
Basic
 
| headers="r6c1-t52 r1c2-t52" align="left" |
 
| headers="r6c1-t52 r1c2-t52" align="left" |
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.
 
EclipseLink JPA performs lazy loading when the <tt>fetch</tt> attribute is set to <tt>javax.persistence.FetchType.LAZY</tt>.

Revision as of 10:40, 4 May 2011

EclipseLink JPA

Eclipselink-logo.gif
EclipseLink
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse Source

Elug api package icon.png Key API


Lazy Basics

JPA specifies that lazy loading is a hint to the persistence provider that data should be fetched lazily when it is first accessed, if possible.

If you are developing your application in a Java EE environment, you only have to set fetch to javax.persistence.FetchType.LAZY, and EclipseLink persistence provider will supply all the necessary functionality.

When using a one-to-one or many-to-one mapping in a Java SE environment, to configure EclipseLink JPA to perform lazy loading when the fetch attribute is set to FetchType.LAZY, configure either dynamic or static weaving.

When using a one-to-one or many-to-one mapping in a Java SE environment that does not permit the use of -javaagent on the JVM command line, to configure EclipseLink JPA to perform lazy loading when annotation attribute fetch is set to javax.persistence.FetchType.LAZY, you can use static weaving.

The EclipseLink JPA Support for Lazy Loading by Mapping Type table, below, lists EclipseLink JPA support for lazy loading by mapping type.


EclipseLink JPA Support for Lazy Loading by Mapping Type

Mapping Java EE 1 Java SE

Many-to_many

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY (default).

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY (default).

One-to-many

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY (default).

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY (default).

One-to-one

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY.

By default, EclipseLink JPA ignores the fetch attribute and default javax.persistence.FetchType.EAGER applies.

Many-to-one

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY.

By default, EclipseLink JPA ignores the fetch attribute and default javax.persistence.FetchType.EAGER applies.

Basic

EclipseLink JPA performs lazy loading when the fetch attribute is set to javax.persistence.FetchType.LAZY.

By default, EclipseLink JPA ignores the fetch attribute and default javax.persistence.FetchType.EAGER applies.

Eclipselink-logo.gif
Version: 2.2.0 DRAFT
Other versions...

Back to the top