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/Transient"
m |
(→Example: @Transient Annotation) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{EclipseLink_UserGuide|info=y|toc=n}} | + | {{EclipseLink_UserGuide |
+ | |info=y | ||
+ | |toc=n | ||
+ | |eclipselink=y | ||
+ | |eclipselinktype=JPA | ||
+ | |api=y | ||
+ | |apis= | ||
+ | * [http://www.eclipse.org/eclipselink/api/latest/javax/persistence/Transient.html @Transient] | ||
+ | }} | ||
+ | |||
=@Transient= | =@Transient= | ||
By default, EclipseLink persistence provider assumes that all the fields of an entity are persistent. | By default, EclipseLink persistence provider assumes that all the fields of an entity are persistent. | ||
− | Use the <tt>@Transient</tt> annotation to specify a field or property of an entity that is not persistent (for example, a field or property that is used at run time, but that is not part of the entity's state). | + | Use the <tt>@Transient</tt> annotation or <code><nowiki><transient></nowiki></code> XML to specify a field or property of an entity that is not persistent (for example, a field or property that is used at run time, but that is not part of the entity's state). |
EclipseLink persistence provider will not persist (or create database schema) for a property or field annotated with <tt>@Transient</tt>. | EclipseLink persistence provider will not persist (or create database schema) for a property or field annotated with <tt>@Transient</tt>. | ||
− | This annotation can be used with <tt>@Entity</tt>, | + | This annotation can be used with <tt>@Entity</tt>, <tt>@MappedSuperclass</tt>, and <tt>@Embeddable</tt>. |
{{EclipseLink_Spec | {{EclipseLink_Spec | ||
|section=Section 8.1 "Entity"}} | |section=Section 8.1 "Entity"}} | ||
The <tt>@Transient</tt> annotation does not have attributes. | The <tt>@Transient</tt> annotation does not have attributes. | ||
+ | |||
+ | If a field is marked as Java <code>transient</code> it will also be ignored. | ||
The following example shows how to use the <tt>@Transient</tt> annotation to specify <tt>Employee</tt> field <tt>currentSession</tt> as not persistent. EclipseLink persistence provider will not persist this field. | The following example shows how to use the <tt>@Transient</tt> annotation to specify <tt>Employee</tt> field <tt>currentSession</tt> as not persistent. EclipseLink persistence provider will not persist this field. | ||
Line 17: | Line 28: | ||
======'' Example: @Transient Annotation''====== | ======'' Example: @Transient Annotation''====== | ||
<source lang="java"> | <source lang="java"> | ||
− | + | @Entity | |
− | + | public class Employee implements Serializable { | |
− | + | @Id | |
− | + | int id; | |
− | + | ||
− | + | @Transient | |
− | + | Session currentSession; | |
− | + | ... | |
− | + | } | |
− | + | </source> | |
+ | |||
+ | ======''Example: Using <code><nowiki><transient></nowiki></code> XML''====== | ||
+ | <source lang="xml"> | ||
+ | <entity class="Employee"> | ||
+ | <attributes> | ||
+ | <id name="id"/> | ||
+ | <transient name="currentSession"/> | ||
+ | ... | ||
+ | </attributes> | ||
+ | </entity> | ||
</source> | </source> | ||
{{EclipseLink_Spec | {{EclipseLink_Spec | ||
− | |section=Section | + | |section=Section 11.1.48 "Transient Annotation"}} |
Latest revision as of 15:16, 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
@Transient
By default, EclipseLink persistence provider assumes that all the fields of an entity are persistent.
Use the @Transient annotation or <transient>
XML to specify a field or property of an entity that is not persistent (for example, a field or property that is used at run time, but that is not part of the entity's state).
EclipseLink persistence provider will not persist (or create database schema) for a property or field annotated with @Transient.
This annotation can be used with @Entity, @MappedSuperclass, and @Embeddable.
For more information, see Section 8.1 "Entity" in the JPA Specification.
The @Transient annotation does not have attributes.
If a field is marked as Java transient
it will also be ignored.
The following example shows how to use the @Transient annotation to specify Employee field currentSession as not persistent. EclipseLink persistence provider will not persist this field.
Example: @Transient Annotation
@Entity public class Employee implements Serializable { @Id int id; @Transient Session currentSession; ... }
Example: Using <transient>
XML
<entity class="Employee"> <attributes> <id name="id"/> <transient name="currentSession"/> ... </attributes> </entity>
For more information, see Section 11.1.48 "Transient Annotation" in the JPA Specification.
@Lob | @Column | |
EclipseLink Home
JPA User Guide: Table of Contents, Search |
||
How to contribute to this guide... |