SpringBoot JPA 保存数据报错:java.sql.S
2021-01-26 本文已影响0人
Artfox丶艺狸
由于我是主要做Android端的,对服务端不熟悉,今天在使用SpringBoot写一个小demo的时候,在使用SpringBoot JPA 进行 save 数据时,报了一个错误:
threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [user.PRIMARY]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement] with root cause
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '23' for key 'user.PRIMARY'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
在网上搜索一翻,都是说我要设置主键自增,但是实际上我已经设置了主键自增了,为什么还是报这个错误呢,其实仔细看,错误还是有些不同的, Duplicate entry '23' 这里有点奇怪,因为我每调用一次接口,这个数字就增加一个,对比了看下数据库,猜测这个是表的自增id吧。做服务端的同学就不要笑了哈。
然后想到表里面的现有数据并不是通用springboot往里面添加的,而执行的sql,会不会因为这个呢?
ID
在数据库里面看到了这个,猜测应该是与自增id有关的,然后将里面的值改到目前我数据库中最大的id,在跑一次,就解决了。这个值具体有什么作用,还没有细查相关资料,先做记录,后期有时候在研究;
大家也可以留言评论帮我解惑,谢谢!