this is the document link: "Mapping SQL and Java Types"
let's see 8.9.3 JDBC Types Mapped to Java Object Types at row: TIMESTAMP - java.sql.Timestamp
but when I use getObject() with oracle database on a TIMESTAMP column, the return type is oracle.sql.TIMESTAMP, it can not been cast to java.sql.Timestamp
I know that I can use getTimestamp() but I need getObject() for handling any resultset regardless of types.
Is the document wrong or me?
The document is correct, the Oracle JDBC driver is the problem.
There's 2 possible solutions:
First one, use getObject:
oracle.sql.TIMESTAMP ts = (oracle.sql.TIMESTAMP) res.getObject("last_update");
agent.setLastUpdate(new Date(ts.dateValue().getTime()));
The second is to add a VM argument to your app:
-Doracle.jdbc.J2EE13Compliant=true
This will make the driver return java.sql.Timestamp
instead of oracle.sql.TIMESTAMP
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With