(动态改变数据源遇到的问题)ORACLE11g:No Dialect mapping for JDBC type: -9解决方案
2024-08-31 02:05:55
在动态改变数据源时 hibernate配置不能使用Oracle官方的方言(org.hibernate.dialect.Oracle10gDialect)
做法写一个方言扩展类,缺什么类型,添加什么类型的支持,并在配置文件中使用自定义的方言扩展类
此次报错:由于hibernate4.2.0和Oracle10g数据库结合使用自定义方言时,需要和老版本做区别,原来的Oracle10gDialect中没有注册NVARCHAR和NCLOB数据类型,
此二者的java.sql.Types对应的类型编码为-9和2011,其它的类型可以参考下面的表1,解决思路是缺少什么类型就在自定义的方言类中注册哪个类型,并且确定用StandardBasicTypes中的类型解析。
例子:步骤1、
package cc.dfsoft.uexpress; import java.sql.Types; import org.hibernate.dialect.Oracle10gDialect;
import org.hibernate.type.StandardBasicTypes;
/**
* Created by luxd on 2018/1/19.
* 继承oracle方言类 , 重新定义oracle字段类型映射到java的类型
*/
public class MyOracleDialect extends Oracle10gDialect{
public MyOracleDialect() {
super();
registerHibernateType(Types.NVARCHAR, StandardBasicTypes.STRING.getName()); }
}
步骤2:
更改hibernate数据库配置文件,将数据库方言改为刚才自定义的方言类
hibernate.dialect=cc.dfsoft.uexpress.MyOracleDialect
各种数据类型编号对照表如下
最新文章
- Android Preference使用
- that-annoying-insert-problem-getting-data-into-the-db-using-dapper
- CSS 之 Opacity多浏览器透明度兼容处理
- python第一天作业
- NET在SQL Server中的图片存取技术
- 谈layout_gravity和gravity的用法
- 学习笔记_Java_day12_设计模式MVC(13).JavaWeb的三层框架(14)
- Vue-cli 创建的项目如何跨域请求
- Scala:函数式编程之下划线underscore
- PHP7 中 ?? 与? :的区别
- 根据浏览器判断是下载IOS还是其它的手机安装包
- 基本数据类型转String,String转基本数据类型
- 在服务器上搭建node环境
- Spring再接触 IOC DI
- Redis入门到高可用(九)——有序集合zset
- SeekBar的用法和自定义滑块的样式
- socket agent统一模板
- 多个程序对sql server中的表进行查询和插入操作导致死锁
- thinkphp5 开启多语言
- 并发系列4-大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?【石杉的架构笔记】