背景:
java传统项目,一直使用oracle数据库,近期有个项目要求SQL Server数据库,运行项目报错
原因
Hibernate方言设置的问题
上面是SQLServerDialect源码,从源码可以发现没有注册列类型为-9的代码;
解决办法
自己注册,话不多说,上代码
public class SqlServerDialectMy extends SQLServerDialect{
public SqlServerDialectMy() {
super();
registerHibernateType(-9, "string");
}
}
Hibernate配置文件
其中<prop key="hibernate.dialect">${hibernate.dialect}</prop>
改为
<prop key="hibernate.dialect">com.util.SqlServerDialectMy</prop>
重启项目,完事