Duplicate entry '0' for key 'PRIMARY'错误
hibernate学习中映射入门的新手可能遇到如“Duplicate entry '0' for key 'PRIMARY'”的错误提示,原因是主键重复,0主键已经存在,不能再进行添加了。
错误详细介绍:
- 01
本人微信公众号,欢迎关注
- 02
14:51:24,878 WARN JDBCExceptionReporter : 100 - SQL Error: 1062, SQLState: 23000 14: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 session org.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)
解决方案:
- 01
将主键设置为自动增长。可以在数据库手动将相关表设置ID为自增长
- 02
手动将表设置为自增长有弊端,建议在annotation里边的POJO类使用注解方式设置自增长。mysql的数据库如图所示设置。
- 03
保存执行即可解决问题
- 04
查看数据库,果然自增了