我们最近针对一个11g Oracle数据库提升了使用ojdbc6在JDK6下编写的一个主要应用程序。在同一个11g数据库上使用JDK8令人振奋,但我们也在升级到12c的过程中。升级后的代码已经针对11g数据库在生产中运行,但是比以前慢。针对我们质量检查环境中的12c数据库,我们注意到作业抛出异常或运行速度非常慢。当我查看代码时,我注意到分配用于提升代码的项目团队未能将ojdbc从6升级到至少8。此后,我已经完成了这项工作,但是现在提交以下代码会出错:< / p>
Calendar endModDate = Calendar.getInstance();
// get the timestamp from the db
Query qry = em.createNativeQuery("select SYSTIMESTAMP from dual");
TIMESTAMPTZWrapper tsTZWrapper = (TIMESTAMPTZWrapper)qry.getSingleResult();
em是我们的实体经理。但是,当代码调用qry.getSingleResult()成员函数时,会出现此错误:
oracle.sql.TIMESTAMPTZ无法转换为org.eclipse.persistence.internal.platform.database.oracle.TIMESTAMPTZWrapper
我一直在寻找一个答案,而任何与答案相似的东西似乎都无法解决我的问题。在代码的另一个区域中使用相同的逻辑,并产生相同的问题。如果我们切换回ojdbc6,则可以正常工作,但是我们不能使用ojdbc6(而且由于使用jdk8,所以我们实际上不应该使用),因为我们需要在下个月升级到Oracle 12c。
感谢您对此事的协助。
答案 0 :(得分:1)
快速评论一下TIMESTAMP数据类型: