mysql数据库中的数据类型和java里类型不匹配,需要自定义方言:
package com.ss.util;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQL5Dialect;
/**
* 自定义hibernate方言
*
* @author wy
*
*/
public class CustomDialect extends MySQL5Dialect {
public CustomDialect() {
super();
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
registerHibernateType(-1, Hibernate.STRING.getName());
}
}
然后在hibernate配置文件中,加上(我的是persistence.xml)
<property name="hibernate.dialect" value="com.ss.util.CustomDialect"/>
这样就ok了,具体看:No Dialect mapping for JDBC type: -1 中最后面的数字,找到无法识别的数据类型