您的位置:首页 > 移动开发

org.hibernate.MappingException: No Dialect mapping for JDBC type: -9(-*)

2016-06-17 17:12 585 查看
SqlServer 异常类型:

public final static int BIT   = -7;
public final static int TINYINT  = -6;
public final static int SMALLINT =   5;
public final static int INTEGER  =  4;
public final static int BIGINT   = -5;
public final static int FLOAT   =  6;
public final static int REAL   =  7;
public final static int DOUBLE   =  8;
public final static int NUMERIC  =  2;
public final static int DECIMAL  =  3;
public final static int CHAR  =  1;
public final static int VARCHAR  = 12;
public final static int LONGVARCHAR  = -1;
public final static int DATE   = 91;
public final static int TIME   = 92;
public final static int TIMESTAMP  = 93;
public final static int BINARY  = -2;
public final static int VARBINARY  = -3;
public final static int LONGVARBINARY  = -4;
public final static int NULL  =  0;
public final static int OTHER  = 1111;
public final static int JAVA_OBJECT        =2000;
public final static int DISTINCT          = 2001;
public final static int STRUCT            =2002;
public final static int ARRAY             =2003;
public final static int BLOB             = 2004;
public final static int CLOB             = 2005;
public final static int REF              = 2006;
public final static int DATALINK = 70;
public final static int BOOLEAN = 16;
public final static int ROWID = -8;
public static final int NCHAR = -15;
public static final int NVARCHAR = -9;
public static final int LONGNVARCHAR = -16;
public static final int NCLOB = 2011;
public static final int SQLXML = 2009;

org.hibernate.MappingException: No Dialect mapping for JDBC type: -9

查阅资料,这个是由于JAVA对应数据库类型映射问题,-9是NVARCHAR 类型映射不了,

根据自己的方言加上:

RDBMS方言

DB2org.hibernate.dialect.DB2Dialect
DB2 AS/400org.hibernate.dialect.DB2400Dialect
DB2 OS390org.hibernate.dialect.DB2390Dialect
PostgreSQLorg.hibernate.dialect.PostgreSQLDialect
MySQLorg.hibernate.dialect.MySQLDialect
MySQL with InnoDBorg.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAMorg.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version)org.hibernate.dialect.OracleDialect
Oracle 9i/10gorg.hibernate.dialect.Oracle9Dialect
Sybaseorg.hibernate.dialect.SybaseDialect
Sybase Anywhereorg.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Serverorg.hibernate.dialect.SQLServerDialect
SAP DBorg.hibernate.dialect.SAPDBDialect
Informixorg.hibernate.dialect.InformixDialect
HypersonicSQLorg.hibernate.dialect.HSQLDialect
Ingresorg.hibernate.dialect.IngresDialect
Progressorg.hibernate.dialect.ProgressDialect
Mckoi SQLorg.hibernate.dialect.MckoiDialect
Interbaseorg.hibernate.dialect.InterbaseDialect
Pointbaseorg.hibernate.dialect.PointbaseDialect
FrontBaseorg.hibernate.dialect.FrontbaseDialect
Firebirdorg.hibernate.dialect.FirebirdDialect

public class SqlServer2008Dialect extends MySQL5Dialect{

     public SqlServer2008Dialect(){

          super();

          registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());

          registerHibernateType(-1, Hibernate.STRING.getName());

    }

}

在属性文件配置:

<property name="hibernate.dialect" value="XXXXX(自己的包名.SqlServer2008Dialect)" />

就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate