Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 没有JDBC类型的方言映射:-9 w/Hibernate 3&;甲骨文10g_Oracle_Hibernate_Jdbc_Nvarchar - Fatal编程技术网

Oracle 没有JDBC类型的方言映射:-9 w/Hibernate 3&;甲骨文10g

Oracle 没有JDBC类型的方言映射:-9 w/Hibernate 3&;甲骨文10g,oracle,hibernate,jdbc,nvarchar,Oracle,Hibernate,Jdbc,Nvarchar,我们最近开始在以前工作的应用程序中看到此错误。据我所知,没有代码更改导致错误,也没有数据库更改。据推测,服务器的数据源配置(驱动程序版本)最近做了一些更改,但我没有确切的细节 应用程序在失败操作中使用的表中没有任何nvarchar2列。 hibernate.dialogue=org.hibernate.dialogue.Oracle10gDialogue在构造函数中使用此选项的自定义hibernate方言“修复”了此问题。仍然不知道为什么会出现,没有使用NVARCHAR列 registerHib

我们最近开始在以前工作的应用程序中看到此错误。据我所知,没有代码更改导致错误,也没有数据库更改。据推测,服务器的数据源配置(驱动程序版本)最近做了一些更改,但我没有确切的细节

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

在构造函数中使用此选项的自定义hibernate方言“修复”了此问题。仍然不知道为什么会出现,没有使用NVARCHAR列

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

感谢您解释这一问题的根本原因。 详情如下:

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

Post full stacktrace。有时原因是
SQLQuery
的选择列表中的字段,而不是选项。另外,我很确定那里没有提到这一点(否则我现在可能已经修好了)。如果没有额外的信息,很难给你其他建议,很抱歉,这显然是一个环境/驱动程序问题-堆栈跟踪没有提供太多帮助。Hibernate正在读取结果集元数据,但不知道NVARCHAR是什么。可能是驱动程序的不同,因为两个不同的应用程序服务器连接到同一个数据库,部署了相同的代码,一个工作,另一个工作。