一. 问题:No Dialect mapping for JDBC type: -8
解决方法:1. rowid对应的columnType为-8,将rowid视作一个字段值
2. 重写org.hibernate.dialect.Oracle9Dialect类,代码如下
package com.importdate.base;
import org.hibernate.dialect.Oracle9Dialect;
public class Oracle9iOr10gDialet extends Oracle9Dialect{
public Oracle9iOr10gDialet(){
super();
super.registerColumnType(-8, "string"); //rowid对应的columnType为-8,将rowid视作一个字段值
super.registerHibernateType(-8, "string");
}
}
3. 配置数据连接数据方言指向:com.datasource.dblinkinit.Oracle9iOr10gDialet
配置位置:com.datasource.config.hibernate.cfg.xml
<!--指定连接的语言-->
<property name="dialect">com.datasource.dblinkinit.Oracle9iOr10gDialet</property>
<!-- 连接池结束 -->
本文介绍了解决Hibernate中出现的NoDialectmappingforJDBCtype:-8错误的方法。通过重写Oracle9Dialect类,并将ROWID字段类型映射为字符串类型,最后配置数据连接以使用新的方言实现。

被折叠的 条评论
为什么被折叠?



