hibernate学习中映射入门的新手可能遇到如“Duplicate entry '0' for key 'PRIMARY'”的错误提示,原因是主键重复,0主键已经存在,不能再进行添加了。
错误详细介绍:
1、本人微信公众号,欢迎关注
2、51:24,878 WARN JDBCExceptionReporter : 100 - SQL Error: 1062, SQLState: 2300014:51:24,879 ERROR JDBCExceptionReporter : 101 - Duplicate entry '0' for key 'PRIMARY'14:51:24,880 ERROR AbstractFlushingEventListener : 324 - Could not synchronize database state with sessionorg.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
解决方案:
1、将主键设置为自动增长。可以在数据库手动将相关表设置ID为自增长
2、手动将表设置为自增长有弊端,建议在annotation里边的POJO类使用注解方式设置自增长。mysql的数据库如图所示设置。
3、保存执行即可解决问题
4、查看数据库,果然自增了