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/Basic Mappings/Basic"
m |
(→Example: @Basic Annotation) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
|toc=n | |toc=n | ||
|eclipselink=y | |eclipselink=y | ||
− | |eclipselinktype=JPA}} | + | |eclipselinktype=JPA |
+ | |api=y | ||
+ | |apis= | ||
+ | * [http://www.eclipse.org/eclipselink/api/latest/javax/persistence/Basic.html @Basic] | ||
+ | }} | ||
=@Basic= | =@Basic= | ||
− | By default, EclipseLink persistence provider automatically configures <tt>@Basic</tt> mapping for most Java primitive types, wrappers of the primitive types, and enumerated types. | + | By default, the EclipseLink persistence provider automatically configures <tt>@Basic</tt> mapping for most Java primitive types, wrappers of the primitive types, and enumerated types. |
− | EclipseLink uses the default column name format of <tt><field-name></tt> or <property-name> in uppercase characters. | + | EclipseLink uses the default column name format of <tt><field-name></tt> or <tt><property-name></tt> in uppercase characters. |
You may explicitly place an optional <tt>@Basic</tt> annotation on a field or property to explicitly mark it as persistent. | You may explicitly place an optional <tt>@Basic</tt> annotation on a field or property to explicitly mark it as persistent. | ||
Line 24: | Line 28: | ||
<td>'''<tt>fetch</tt>'''</td> | <td>'''<tt>fetch</tt>'''</td> | ||
<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> | + | <td><code>EAGER</code></td> |
<td>No</td> | <td>No</td> | ||
</tr> | </tr> | ||
Line 33: | 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> | + | <td><code>true</code></td> |
<td>No</td> | <td>No</td> | ||
</tr> | </tr> | ||
}} | }} | ||
− | |||
+ | The following example shows how to use this annotation to specify a fetch type of <tt>LAZY</tt> for a basic mapping. | ||
− | + | ======'' Example: @Basic Annotation''====== | |
− | '' | + | |
<source lang="java"> | <source lang="java"> | ||
− | + | @Entity | |
− | + | public class Employee implements Serializable { | |
− | + | ... | |
− | + | @Basic(fetch=LAZY) | |
− | + | protected String getJobDescrption() { | |
− | + | return jobDescrption; | |
− | + | } | |
− | + | ... | |
− | + | } | |
</source> | </source> | ||
+ | ======''Example: Using <code><nowiki><basic></nowiki></code> XML''====== | ||
− | + | <source lang="xml"> | |
+ | <entity class="Employee"> | ||
+ | <attributes> | ||
+ | ... | ||
+ | <basic name="jobDescrption" fetch="LAZY"/> | ||
+ | ... | ||
+ | </attributes> | ||
+ | </entity> | ||
+ | </source> | ||
− | For more information | + | For more information and examples, see Section 11.1.6 "Basic Annotation" of the [http://jcp.org/en/jsr/detail?id=220 JPA Specification]. |
Latest revision as of 13:48, 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 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.