`

问题积累—关于 No Dialect mapping for JDBC type: 错误

    博客分类:
  • SSH
阅读更多

参考了http://www.iteye.com/topic/580476的文章,解决问题。

 

在此记录一下:

 

我的SQLServer数据库中表的字段是nvarchar(1),升级到2008上也是nvarchar(1)出现了
 
运行的时候报错:No Dialect mapping for JDBC type:-9
 
解决方法如下:
1.首先自己写一个class,继承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());   
    }   
}  
  
 
2:修改配置文件application.xml:
 
<property name="hibernateProperties">
      <props>
              <prop key="hibernate.dialect">
               com.***.***.***.util.SqlServer2008Dialect
              </prop>
      </props>
</property>
 
注:其他的数据类型请参考下表
类型名称 显示长度 数据库类型 JAVA类型 JDBC类型(int) Types属性
VARCHAR L+N VARCHAR java.lang.String 12 Types.VARCHAR
CHAR N CHAR java.lang.String 1 Types.CHAR
BLOB L+N BLOB java.lang.byte[] -4 Types.LONGVARBINARY
TEXT 65535 VARCHAR java.lang.String -1 Types.LONGVARCHAR
INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 Types.INTEGER
TINYINT 3 TINYINT UNSIGNED java.lang.Integer -6 Types.TINYINT
SMALLINT 5 SMALLINT UNSIGNED java.lang.Integer 5 Types.SMALLINT
MEDIUMINT 8 MEDIUMINT UNSIGNED java.lang.Integer 4 Types.INTEGER
BIT 1 BIT java.lang.Boolean -7 Types.BIT
BIGINT 20 BIGINT UNSIGNED java.math.BigInteger -5 Types.BIGINT
FLOAT 4+8 FLOAT java.lang.Float 7 Types.REAL
DOUBLE 22 DOUBLE java.lang.Double 8 Types.DOUBLE
DECIMAL 11 DECIMAL java.math.BigDecimal 3 Types.DECIMAL
BOOLEAN 1 同TINYINT java.lang.Integer -6 Types.TINYINT
DATE 10 DATE java.sql.Date 91 Types.DATE
TIME 8 TIME java.sql.Time 92 Types.TIME
DATETIME 19 DATETIME java.sql.Timestamp 93 Types.TIMESTAMP
TIMESTAMP 19 TIMESTAMP java.sql.Timestamp 93 Types.TIMESTAMP
YEAR 4 YEAR java.sql.Date 91 Types.DATE
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics