Oracle 没有JDBC类型的方言映射:-9 w/Hibernate 3&;甲骨文10g
我们最近开始在以前工作的应用程序中看到此错误。据我所知,没有代码更改导致错误,也没有数据库更改。据推测,服务器的数据源配置(驱动程序版本)最近做了一些更改,但我没有确切的细节 应用程序在失败操作中使用的表中没有任何nvarchar2列。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
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.0Post full stacktrace。有时原因是
SQLQuery
的选择列表中的字段,而不是选项。另外,我很确定那里没有提到这一点(否则我现在可能已经修好了)。如果没有额外的信息,很难给你其他建议,很抱歉,这显然是一个环境/驱动程序问题-堆栈跟踪没有提供太多帮助。Hibernate正在读取结果集元数据,但不知道NVARCHAR是什么。可能是驱动程序的不同,因为两个不同的应用程序服务器连接到同一个数据库,部署了相同的代码,一个工作,另一个工作。