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>再次运行即可。