gpt4 book ai didi

jpa - LockModeType.PESSIMISTIC_WRITE 对于 JPA 中的 UPSERT 是否足够?

转载 作者:行者123 更新时间:2023-12-04 08:16:34 24 4
gpt4 key购买 nike

我已阅读 this article on JPA concurrency ,但要么我太厚,要么不够明确。

我希望做一个数据库控制的原子更新如果找到其他插入操作(一个 UPSERT)。

在我可怜的缓慢大脑看来,我可以——当然是在一个事务中——运行一个锁模式为 PESSIMISTIC_WRITE 的命名查询。 ,看看它是否返回任何结果,然后是 persist()update()然后。

我不清楚的是使用 PESSIMISTIC_WRITE 执行此操作之间的区别。锁 vs. a PESSIMISTIC_READ锁。我读过句子--我明白PESSIMISTIC_READ旨在防止不可重复读取,和 PESSIMISTIC_WRITE是...好吧,也许我不太了解那个 :-) -- 但它下面只是一个 SQL SELECT FOR UPDATE , 是的?在这两种情况下?

最佳答案

I am looking to do a database-controlled atomic update-if-found-else-insert operation (an UPSERT).



我可能没有完全回答整个问题,但是如果您想在没有任何竞争条件的情况下实现上述内容,您需要 IMO 表级锁定排他模式(不仅是行)。我不知道这是否可以用 JPA 来完成。也许你可以澄清什么对你来说是可以接受的。

关于jpa - LockModeType.PESSIMISTIC_WRITE 对于 JPA 中的 UPSERT 是否足够?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833847/

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