gpt4 book ai didi

java - 如何处理JPA中的OptimisticLockException

转载 作者:行者123 更新时间:2023-11-30 07:39:16 24 4
gpt4 key购买 nike

我有 OptimisticLockException,如下代码所示(错误代码:entity = em.merge(entity);),因为当用户从 diffrenet 浏览器选项卡中同时单击“保存”按钮两次时。注意:entity.getOid() 不为空!谁能帮帮我...

public static synchronized KirKiraciSozlesmeYeniKayitForm kaydet(KirKiraciSozlesmeYeniKayitForm form, EntityManager em) {

KirKiraciSozlesme entity = new KirKiraciSozlesme();
UtilInsCore.copyProperties(form, entity);

if (entity.getOid() == null) {
Long oid = DBUtil.getSeqNextValue(em, "KIR_KIRACI_SOZLESME_SEQ");
entity.setOid(oid);
}
entity = em.merge(entity);
em.flush();
UtilInsCore.copyProperties(entity, form);

return form;
}

提前谢谢您。

最佳答案

这是正确的 JPA 行为。当用户第一次单击“保存”按钮时,实体版本字段会增加。因此,当用户在第二个选项卡版本中单击“保存”按钮时,JPA 会生成乐观锁异常。如果用户在第一个选项卡中更改 field1 并保存它,并在第二个选项卡中更改 field2 并保存,并且没有乐观异常,实体状态会是什么?您可以通知用户第二次该实体已被其他用户更改并重新加载新的实体状态或类似的内容...

关于java - 如何处理JPA中的OptimisticLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926337/

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