解决办法如下:在公共包里边新建SqlServer2008Dialect类,继承自SQLServer2008Dialect然后在hibernate配置文件中将dialect更改为当前的类
package com.shihuan.core.framework.extend;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServer2008Dialect;
public class SqlServer2008Dialect extends SQLServer2008Dialect {
public SqlServer2008Dialect() {
super();
registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
registerHibernateType(Types.NCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGNVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.DECIMAL, Hibernate.DOUBLE.getName());
}
}
java.sql.Types对应的值请参考http://blog.sina.com.cn/s/blog_4f925fc30102ep0v.html