Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Problem persisting TimestampTZ with JPA
Problem persisting TimestampTZ with JPA [message #737098] Fri, 14 October 2011 16:52 Go to next message
Jeremy Purdy is currently offline Jeremy Purdy
Messages: 7
Registered: October 2011
Junior Member
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 17:06 Go to previous message
James Sutherland is currently offline James Sutherland
Messages: 1939
Registered: July 2009
Location: Ottawa, Canada
Senior Member

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.


James : Wiki : Book : Blog : Twitter
Previous Topic:create-tables doesn't create foreign key constraints
Next Topic:@OneToMany SortedSet
Goto Forum:
  


Current Time: Sun Sep 21 22:23:07 GMT 2014

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

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