Spring DATA JPA onetoone单向映射CASCADE.ALL插入重复的子行,不更新

问题描述

我正在编写一个实体类 Result,它有一个到另一个实体 UpstreamResult 的 ONETOONE 映射。 当我执行 save() 方法时。在 spring boot 并发情况下,有时,子实体被插入未更新并抛出 JdbcSQLIntegrityConstraintViolationException: Unique index or primary key conflict

父类:

@Table(name = "RESULT")
public class Result implements Serializable {

    @OneToOne(cascade = CascadeType.ALL,orphanRemoval = true)
    @JoinColumn(name = "UPSTREAMSIGNALTESTRESULT_ID",referencedColumnName = "uuid",unique=true)
    private UpStreamTestResult upStreamSignalTestResult;

  
    ...

子类:

@Table(name = "UPSTREAMTESTRESULT")
public class UpStreamTestResult implements Serializable {

    @Id
    private String uuid;

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof UpStreamTestResult)) {
            return false;
        }

        UpStreamTestResult that = (UpStreamTestResult) o;

        if (this == that) {
            return true;
        }

        return this.getUuid().equals(that.getUuid());
    }

    @Override
    public int hashCode() {
        return this.getUuid().hashCode();
    }

.....

如果我运行我的应用程序一次,它就可以正常工作。但是当我运行我的应用程序 aync 和高并发时,所有实例都连接到一个数据库,它抛出上述异常。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...