Skip to main content



      Home
Home » Eclipse Projects » EclipseLink » Problem persisting TimestampTZ with JPA
Problem persisting TimestampTZ with JPA [message #737098] Fri, 14 October 2011 12:52 Go to next message
Eclipse UserFriend
Versions
Eclipselink 2.1
Oracle 10.2.0.4
Tomcat 5.5.26

Using JPA, I am attempting to persist a java.util.Calendar object to an Oracle Timestamp With Time Zone column. From what I have read, Eclipselink is supposed to just handle this for Oracle DB.

However, an attempt at a direct mapping:

@Entity
@Table(name="TIMESTAMP_TZ_TEST")
public class TimestampTzTest {
@Id
private Long id;
@Column(name="TIME")
private Calendar time;

public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Calendar getTime() {
return time;
}

public void setTime(Calendar time) {
this.time = time;
}
}

fails during startup because
The attribute [time] from the entity class [class eg.model.TimestampTzTest] does not specify a temporal type.

Next, I try using a TypeConverter

@Column(name="TIME")
@Convert("timestamptz")
@TypeConverter(name="timestamptz", dataType=TIMESTAMPTZ.class)
private Calendar time;

This results in an error during execution:
Caused by: java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.DelegatingCallableStatement cannot be cast to oracle.jdbc.OracleCallableStatement
at oracle.sql.TRANSDUMP.getTransitions(TRANSDUMP.java:42)
at oracle.sql.TIMEZONETAB.updateTable(TIMEZONETAB.java:456)
at oracle.sql.TIMESTAMPTZ.toTimestamp(TIMESTAMPTZ.java:571)
at oracle.sql.TIMESTAMPTZ.timestampValue(TIMESTAMPTZ.java:731)
at org.eclipse.persistence.platform.database.oracle.Oracle9Platform.getTIMESTAMPTZFromResultSet(Oracle9Platform.java:192)

From what I have found during search, this appears to be caused by the Tomcat connection pool not returning the underlying OracleCallableStatement.

I have not been able to find a solution to this problem. Can someone please guide me?
Re: Problem persisting TimestampTZ with JPA [message #748369 is a reply to message #737098] Mon, 24 October 2011 13:06 Go to previous message
Eclipse UserFriend
The issue is that EclipseLink needs to raw Oracle JDBC Connection, but your DataSource is wrapping it.

Either use an EclipseLink connection pool instead, or define an EclipseLink ServerPlatform for Tomcat that unwraps the connection.
Previous Topic:create-tables doesn't create foreign key constraints
Next Topic:@OneToMany SortedSet
Goto Forum:
  


Current Time: Wed Jul 23 04:59:31 EDT 2025

Powered by FUDForum. Page generated in 0.20171 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top