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 中最后面的数字,找到无法识别的数据类型