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.
EclipseLink/UserGuide/JPA/Basic JPA Development/Mapping/Basic Mappings/Basic
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 getJobDescrption() { return jobDescrption; } ... }
Example: Using <basic>
XML
<entity class="Employee"> <attributes> ... <basic name="jobDescrption" fetch="LAZY"/> ... </attributes> </entity>
For more information and examples, see Section 11.1.6 "Basic Annotation" of the JPA Specification.