JDBC类型的无方言映射:-9 w / Hibernate 3& Oracle 10g

时间:2014-05-19 21:08:09

标签: oracle hibernate jdbc nvarchar

我们最近开始看到以前正在运行的应用程序出现此错误。没有进行代码更改导致错误,也没有更改数据库(据我所知)。据说最近对服务器的数据源配置(驱动程序版本)做了一些改动,但我没有明确的细节。

应用程序在失败操作中使用的表中没有任何nvarchar2列。 hibernate.dialect = org.hibernate.dialect.Oracle10gDialect

2 个答案:

答案 0 :(得分:4)

自定义hibernate方言在构造函数中用“修复”这个问题。仍然不知道它为什么出现,没有使用NVARCHAR列...

registerHibernateType(Types.NVARCHAR, StringType.INSTANCE.getName());

答案 1 :(得分:0)

感谢您解释其根本原因。 更多详情:http://docs.oracle.com/cd/B19306_01/java.102/b14355/global.htm#CHDHHJDB

我能够通过使用不同版本的Oracle JDBC驱动程序来解决这个问题。 将ojdbc6.jar从prod服务器上的“11.2.0.3.0”降级为用于开发的“11.1.0.7.0-Production”修复此问题。目标服务器是NLS_RDBMS_VERSION 10.2.0.4.0