我是Oracle-DBA尝试将Oracle-11g数据库升级到Oracle-12c。我们的Web开发人员告诉我,将旧的应用程序(其中很多是使用旧的JBOSS 4.2.2和旧的Hibernate 3.4.0 / 3.1.0开发)到新的Oracle数据库(12c)有一个大问题。 )
我们的开发人员向我发送此信息:
seam-version - > 2.2.2.Final
hibernate-annotations-version - > 3.4.0.GA
hibernate-validator-version - > 3.1.0.GA
jsf-facelets-version - > 1.1.14
rich-faces-version - > 3.3.3.Final
als Dependency:适用于Compilieren的hibernate-core版本3.3.0.SP1。
OracleDialect:org.hibernate.dialect.Oracle10gDialect
Hibernate-Version:3.2.4.sp1
Hibernate Annotations版本:3.2.1.GA
Hibernate EntityManager版本:3.2.1.GA
适用于11g的Oracle JDBC驱动程序 - ojdbc14
适用于12c的Oracle JDBC驱动程序 - ojdbc6
所以,如果你调用一个程序XXXXXXXXX(o_res out sys_refcursor,p_yyyyy IN NUMBER,....) 它抛出了这个问题:
.... 信息|引起:org.hibernate.HibernateException:尝试加载或访问OracleTypes.CURSOR值时出现问题 ..................... 信息|引起:java.lang.IllegalAccessException:类org.hibernate.dialect.Oracle9Dialect无法使用修饰符“”访问类oracle.jdbc.driver.OracleTypes的成员 错误:https://hibernate.atlassian.net/browse/HHH-3159
虽然,根据这个链接我们应该在使用Oracle-11g时遇到问题,而不是在尝试升级到12c时! (“对于Oracle 11g,不推荐使用的包oracle.jdbc.driver不再存在,这导致所有OracleDialect类都出现问题,导致无法使用Hibernate。”(с))
这里可以读到: “尝试使用org.hibernate.dialect.Oracle10gDialect,似乎是Hibernate 4.3.9中最高的版本。 12c的方言似乎出现在以后的版本中,请看这个。“ (我们甚至有一个旧版本的Hibernate - 3.2.4!)
更新的Hibernate(> 3.2.4),如果我做对了,就不能与旧的Jboss 4.2.2兼容。 (是吗?!如果可以的话,请不要同意我(=与我的同事)
进行12c-Oracle升级的正确决策或解决方法是什么?
非常感谢你!