最近遇到一个Error:Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect).
看字面意思是要更新的这一行记录已经被其他更新或者删除了。网上查了很多大家世代相传的资料。一般认为并发或者当前数据版本小于数据库数据的版本。但是我想了想,自己单机测试咋会出现这个问题。于是根据报错信息开始了漫长的调试研究过程。
开发环境:springboot+jpa+MySQL;
简化代码场景如下。
- 数据表:MySQL中有一个data表,Data有三个字段 自增型Id data_id,标记Data发布时间的data_publish_date,需要用户通过前端控件指定,标记用户具体信息的字符串data_info。
- 实体字段
@Entity
@Table(name="data")
public class Data{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY