gpt4 book ai didi

java - JPA:设置@JoinColumn(updatable = false) 以避免 OptimisticLockException

转载 作者:行者123 更新时间:2023-11-30 11:50:00 25 4
gpt4 key购买 nike

给定以下两个实体

@Entity
public class A {
@Version
protected int version;

String basicPropertey;

// getter and setter for basicProperty
}

@Entity
public class B {
@Version
protected int version;

@ManyToOne
private A a;

public B(A a) {
this.a = a}
}

//getter for a
}

两个问题:

  1. 实体A的版本号是否每次都增加实体 B 合并到 DB(注意没有CascadeType.MERGE 定义在与 A) 的关系上,因此导致当 A 与 a 合并时可能出现 OptimisticcLockException不同的版本号?

  2. 如果是,是否有助于避免出现OptimisticLockException 如果我在关系?

我的情况是实体 B 更新非常频繁,而 A 偶尔更新,但只有它的基本属性(而不是关系),我在实体 A 上得到了一个 OptimisticLockException。

最佳答案

如果你只改变 B,那么你就不会在 A 上得到一个锁错误。

您只会在 B 上遇到锁定错误。

检查您的 SQL 日志以了解您实际在做什么。

关于java - JPA:设置@JoinColumn(updatable = false) 以避免 OptimisticLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com