hibernate自动创建表默认是latin1字符类型。但是添加的数据是utf8,这时候会报1366错误。
故解决的办法是在创建表时自动字符类型设置为utf8,方法如下:
代码如下:
package dialect;
import org.hibernate.dialect.MySQL5InnoDBDialect;
public class MysqlDialect extends MySQL5InnoDBDialect {
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
}
然后在hibernate核心配置文件中添加这个方法的全路径
原来是
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
修改成自己定义的全路径
<property name="hibernate.dialect">dialect.MysqlDialect</property>
再次运行即可。