前段时间碰到了这类错误,最后的问号表示不确定的数字,但是解决的方法都一样。
?
首先,自定义一个方言类——Hibernate Dialect,该类需要继承与我们使用的数据库相应的方言类。比如:如果我们用的是MySql(版本为5.x.x),我们需要继承“org.hibernate.dialect.MySQL5Dialect”;如果我们使用的是DB2,那么我们应该继承“org.hibernate.dialect.DB2Dialect”;我用的是SqlServer2008,所以我要继承“org.hibernate.dialect.SQLServerDialect”,参考代码如下:
- import?java.sql.Types; ??
 - ??
 - import?org.hibernate.Hibernate; ??
 - import?org.hibernate.dialect.SQLServerDialect; ??
 - ??
 - public?class?SqlServer2008Dialect?extends?SQLServerDialect?{ ??
 - ??
 - ????public?SqlServer2008Dialect()?{ ??
 - ????????super(); ??
 - ????????registerHibernateType(Types.CHAR,?Hibernate.STRING.getName()); ??
 - ????????registerHibernateType(Types.NVARCHAR,?Hibernate.STRING.getName()); ??
 - ????????registerHibernateType(Types.LONGNVARCHAR,?Hibernate.STRING.getName()); ??
 - ????????registerHibernateType(Types.DECIMAL,?Hibernate.DOUBLE.getName()); ??
 - ????} ??
 - }??
 
- import?java.sql.Types; ??
 - ??
 - import?org.hibernate.Hibernate; ??
 - import?org.hibernate.dialect.SQLServerDialect; ??
 - ??
 - public?class?SqlServer2008Dialect?extends?SQLServerDialect?{ ??
 - ??
 - ????public?SqlServer2008Dialect()?{ ??
 - ????????super(); ??
 - ????????registerHibernateType(Types.CHAR,?Hibernate.STRING.getName()); ??
 - ????????registerHibernateType(Types.NVARCHAR,?Hibernate.STRING.getName()); ??
 - ?????
 
