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/Temporal"

(Example: @Temporal Annotation)
 
(4 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
=@Temporal=
 
=@Temporal=
Use the <tt>@Temporal</tt> annotation to specify the database type that EclipseLink persistence provider should persist for persistent fields or properties of type <tt>java.util.Date</tt> and <tt>java.util.Calendar</tt> only.
+
Use the <tt>@Temporal</tt> annotation or <code><temporal></code> XML to specify the database type that EclipseLink persistence provider should persist for persistent fields or properties of type <tt>java.util.Date</tt> and <tt>java.util.Calendar</tt> only.
  
 
You can use this annotation with the [[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings|<tt>@Basic</tt>]] annotation.
 
You can use this annotation with the [[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings|<tt>@Basic</tt>]] annotation.
Line 59: Line 59:
  
 
====Timezones and Calendars====
 
====Timezones and Calendars====
In Java a Calendar also stores a timezone and day light saving offset in addition to the date and time values.  Normally this timezone is lost when storing the Calendar to the database.  Some databases have support for storing timezones and offsets, so it is possible to store these to the database as well.
+
In Java a <code>Calendar</code> also stores a timezone and day light saving offset in addition to the date and time values.  Normally this timezone is lost when storing the <code>Calendar</code> to the database.  Some databases have support for storing timezones and offsets, so it is possible to store these to the database as well.
 +
 
 +
EclipseLink supports storing timezones in an Oracle database through the <code>TIMESTAMPTZ</code> and <code>TIMESTAMPLTZ</code> types in Oracle.  To store timezones, ensure the column is of type <code>TIMESTAMPTZ</code>, <code>Calendar</code> is used as the type in Java, and the <code>Oracle9Platform</code> or higher is used.  You can also use a <code>TypeConverter</code> and set the <code>dataType</code> to <code>oracle.sql.TIMESTAMPTZ</code> or <code>oracle.sql.TIMESTAMPLTZ</code>.
  
EclipseLink supports storing timezones in an Oracle database through the <code>TIMESTAMPTZ</code> and <code>TIMESTAMPLTZ</code> types in Oracle.
 
Seee, [[EclipseLink/UserGuide/JPA/Oracle|Oracle]].
 
  
 
{{EclipseLink_JPA
 
{{EclipseLink_JPA

Latest revision as of 14:59, 27 October 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


@Temporal

Use the @Temporal annotation or <temporal> XML to specify the database type that EclipseLink persistence provider should persist for persistent fields or properties of type java.util.Date and java.util.Calendar only.

You can use this annotation with the @Basic annotation.

@Temporal Attributes
Attribute Description Default Required?
value Set this attribute to the TemporalType that corresponds to database type you want EclipseLink persistence provider to use:
  • DATE – equivalent of java.sql.Date
  • TIME – equivalent of java.sql.Time
  • TIMESTAMP – equivalent of java.sql.Timestamp
Yes


The following example shows how to use this annotation to specify that EclipseLink persistence provider should persist java.util.Date field startDate as a DATE (java.sql.Date) database type.

Example: @Temporal Annotation
@Entity
public class Employee implements Serializable {
    ...
    @Temporal(DATE)
    protected java.util.Date startDate;
    ...
}
Example: Using <temporal> XML
<entity class="Employee">
    <attributes>
        ...
        <basic name="startDate">
            <temporal>DATE</temporal>
        </basic>
        ...
    </attributes>
</entity>
Elug javaspec icon.gif

For more information, see Section 11.1.47 "Temporal Annotation" in the JPA Specification.

Timezones and Calendars

In Java a Calendar also stores a timezone and day light saving offset in addition to the date and time values. Normally this timezone is lost when storing the Calendar to the database. Some databases have support for storing timezones and offsets, so it is possible to store these to the database as well.

EclipseLink supports storing timezones in an Oracle database through the TIMESTAMPTZ and TIMESTAMPLTZ types in Oracle. To store timezones, ensure the column is of type TIMESTAMPTZ, Calendar is used as the type in Java, and the Oracle9Platform or higher is used. You can also use a TypeConverter and set the dataType to oracle.sql.TIMESTAMPTZ or oracle.sql.TIMESTAMPLTZ.


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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.