已深秋 2021-10-29 11:39 采纳率: 0%
浏览 34

关于mysql死锁的一个问题。

  1. 以下是我的表的实体类,id是自动增长, 分别在statDate,advertiserId,“"orderId", "statDate"” 都建有索引!
@Entity
@Table(name = "A"
        , indexes = {@Index(name = "A_stat_date", columnList = "statDate"),
        @Index(name = "A_advertiserId", columnList = "advertiserId")}
        , uniqueConstraints={@UniqueConstraint(name = "A_order_Id_stat_date", columnNames = {"orderId", "statDate"})})
public class QianChuanWebSxtOrderDayReport {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Long orderId; // 订单ID
    @JSONField(name = "ad_id")
    private Long adId; // 计划ID
    @JSONField(name = "advertiser_id")
    private Long advertiserId; // 广告主Id
    @JsonIgnore // 忽略JSON化
    private LocalDate statDate; // 所属的哪一天

}
  1. 执行以下语句会经常发生死锁,事务性的删除,先删除今日广告主的所有数据,然后再保存今日最新的数据
    @Override
    @Transactional
    public void saveAll(Long advertiserId, LocalDate date, List<QianChuanWebSxtOrderDayReport> reports) {
        repository.deleteByAdvertiserIdAndStatDate(advertiserId, date);
        repository.flush();
        repository.saveAll(reports);
    }

  1. 死锁问题,怎么样可以彻底解决掉。。
  • 写回答

4条回答 默认 最新

  • 已深秋 2021-10-29 11:40
    关注

    mysql: 版本 5.7
    事务隔离级别为: 读已提交

    评论

报告相同问题?

问题事件

  • 创建了问题 10月29日

悬赏问题

  • ¥15 c语言数据结构实验单链表的删除
  • ¥15 关于#lua#的问题,请各位专家解答!
  • ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline