Hibernate 3.3.0 与 Oracle 12c 的兼容性

Posted

技术标签:

【中文标题】Hibernate 3.3.0 与 Oracle 12c 的兼容性【英文标题】:Hibernate 3.3.0 compatibility with Oracle 12c 【发布时间】:2016-07-26 15:03:28 【问题描述】:

这篇文章类似于link 但我没有找到答案。我正在从 Oracle 11g 迁移到 Oracle 12c。我可以使用与 hibernate 3.3.0 相同的方言吗org.hibernate.dialect.OracleDialect。 我也在使用 ojdbc14.jar,它是 JDBC 驱动程序版本 10.2.0.3.0。根据 Oracle,我需要使用至少 ojdbc6.jar 或最低 JDBC 驱动程序版本 11.1.0.x。如果我使用 ojdbc6.jar 则需要解决java.sql.dateTimestamp SQL 类型的冲突;将 Long 类型更改为 LOB 类型。如果我错了,请更正,并让我知道我可能遗漏的其他内容。

【问题讨论】:

【参考方案1】:

查看此链接Differences between classes12.jar, ojdbc14.jar, ojdbc5.jar and ojdbc6.jar。驱动文件的名称与数据库驱动版本有关。它只是符合 JDBC 标准的版本。

所以 ojdbc6.jar 可以有驱动程序版本 10g、11g 或 12c。它甚至可以是 Oracle 支持提供的驱动程序,其中包含一个专门为您提供的特定修复。

由于某些版本 (1.5) Oracle JDBC 驱动程序是可执行的。您可以简单地执行它们以获得准确的版本:

java -jar ojdbc5.jar
Oracle 11.2.0.3.0 JDBC 3.0 compiled with JDK5 on Tue_Aug_23_13:32:03_PDT_2011
#Default Connection Properties Resource
#Wed Apr 06 12:37:06 CEST 2016

您不应该使用 ojdbc14.jar,除非您仍在使用 Java 1.4。

Oracle 保证与主版本号相差 1 的客户端的兼容性。在某些情况下,这可以通过设置绕过 SQLNET.ALLOWED_LOGON_VERSION 在 db 服务器端的 sqlnet.ora 文件中。

【讨论】:

【参考方案2】:

有关 JDBC 驱动程序版本的更多详细信息,请参阅FAQ。推荐的最佳实践是,JDBC 驱动程序版本应始终与正在使用的 Oracle 数据库版本相同或更高,以便利用驱动程序的最新功能。

【讨论】:

以上是关于Hibernate 3.3.0 与 Oracle 12c 的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate + Oracle 结合

Hibernate + Java 性能较慢,但当我将 TOAD 与相同的本机 Oracle 查询一起使用时性能较快

JBoss EAP 6.x 与 Hibernate Oracle Sequence Duplicate Value on Primary Key

如何优化 Oracle 11g 和 Hibernate 的批量插入?

Hibernate和Oracle通过Windows身份验证连接

hibernate中的annotations是啥意思