Notice: This Wiki is now read only and edits are no longer 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/Basic Mappings/Basic"
Line 29: | Line 29: | ||
<td> By default, EclipseLink persistence provider uses a fetch type of <tt>javax.persitence.FetchType.EAGER</tt>: data must be eagerly fetched. If necessary, you can set <tt>fetch</tt> to <tt>FetchType.LAZY</tt>: this is a hint to the persistence provider that data should be fetched lazily when it is first accessed (if possible). | <td> By default, EclipseLink persistence provider uses a fetch type of <tt>javax.persitence.FetchType.EAGER</tt>: data must be eagerly fetched. If necessary, you can set <tt>fetch</tt> to <tt>FetchType.LAZY</tt>: this is a hint to the persistence provider that data should be fetched lazily when it is first accessed (if possible). | ||
</td> | </td> | ||
− | <td>EAGER</td> | + | <td><code>EAGER</code></td> |
<td>No</td> | <td>No</td> | ||
</tr> | </tr> | ||
Line 35: | Line 35: | ||
<td>'''<tt>optional</tt>'''</td> | <td>'''<tt>optional</tt>'''</td> | ||
<td>By default, EclipseLink persistence provider assumes that the value of all (nonprimitive) fields and properties are optional and may be <tt>null</tt>.</td> | <td>By default, EclipseLink persistence provider assumes that the value of all (nonprimitive) fields and properties are optional and may be <tt>null</tt>.</td> | ||
− | <td>true</td> | + | <td><code>true</code></td> |
<td>No</td> | <td>No</td> | ||
</tr> | </tr> |
Revision as of 13:36, 27 October 2011
EclipseLink JPA
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
@Basic
By default, the EclipseLink persistence provider automatically configures @Basic mapping for most Java primitive types, wrappers of the primitive types, and enumerated types.
EclipseLink uses the default column name format of <field-name> or <property-name> in uppercase characters.
You may explicitly place an optional @Basic annotation on a field or property to explicitly mark it as persistent.
Note: The @Basic annotation is mostly for documentation purposes – it is not required for the field or property to be persistent.
Use the @Basic annotation to do the following:
- configure the fetch type to LAZY;
- configure the mapping to forbid null values (for nonprimitive types) in case null values are inappropriate for your application.
Attribute | Description | Default | Required? |
---|---|---|---|
fetch | By default, EclipseLink persistence provider uses a fetch type of javax.persitence.FetchType.EAGER: data must be eagerly fetched. If necessary, you can set fetch to FetchType.LAZY: this is a hint to the persistence provider that data should be fetched lazily when it is first accessed (if possible). | EAGER |
No |
optional | By default, EclipseLink persistence provider assumes that the value of all (nonprimitive) fields and properties are optional and may be null. | true |
No |
The following example shows how to use this annotation to specify a fetch type of LAZY for a basic mapping.
Example: @Basic Annotation
@Entity public class Employee implements Serializable { ... @Basic(fetch=LAZY) protected String getName() { return name; } ... }
For more information and examples, see Section 11.1.6 "Basic Annotation" of the JPA Specification.