No Dialect mapping for JDBC type: -1

No Dialect mapping for JDBC type: -1

原因:hibernate 方言不支持此类型,数据库表中有text类型的字段,而Hibernate在native查询中没有注册这个字段,因此发生这个错误

解决办法:

写一个类、修改hibernate配置文件。
写一个Dialect的子类,这里我 extends MySQL5Dialect类:

package com.jh.jcs.framework.utils;

import java.sql.Types;

import org.hibernate.dialect.MySQL5Dialect;

public class DialectForInkfish extends MySQL5Dialect{

 public DialectForInkfish() { 
        super(); 
        registerHibernateType(Types.LONGVARCHAR, 65535, "text"); 
       // registerHibernateType  (Types.DECIMAL,Hibernate.BIG_DECIMAL.getName());   
 //registerHibernateType(-1, Hibernate.STRING.getName());    

    } 

}

 
修改config.properties文件:

hibernate.dialect=com.jh.jcs.framework.utils.DialectForInkfish

 

你可能感兴趣的:(sql,Hibernate,jdbc)