加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 访问数据库的多个线程:一个具有长事务,一个具有短事务

发布时间:2020-12-14 19:13:14 所属栏目:Java 来源:网络整理
导读:假设我有一个桌面应用程序,可以充当一堆汽车的车库: @Entitypublic class Garage { private List 桌面应用程序有一个“模拟”按钮,可以启动一个新线程并开始调用Garage,Car,Wheel等方法.此模拟可能需要长达10分钟才能运行.目前我有一个看起来像这样的课程:

假设我有一个桌面应用程序,可以充当一堆汽车的车库:

@Entity
public class Garage {
    private List

桌面应用程序有一个“模拟”按钮,可以启动一个新线程并开始调用Garage,Car,Wheel等方法.此模拟可能需要长达10分钟才能运行.目前我有一个看起来像这样的课程:

beginTransaction();
Garage garage = garageDao.findGarage(1);
List

此代码只执行“读取”而从不“写入”

因此,上述情况可能需要很长时间,具体取决于汽车需要多少服务.在发生上述情况时,用户可以继续使用桌面应用程序.他们可能会选择更改上述交易中使用的汽车颜色.

我的问题是,上述长期交易是否会阻止汽车颜色的变化?即,在长期交易完成之前,将阻止用户更改桌面应用程序中汽车的颜色?

最佳答案
为什么要这样?默认情况下,您使用乐观事务,因此没有锁定应用于正在读取的行(除非您没有向我们展示一些JPA2 lock()调用).然后,事务提交应检查记录的乐观版本(如果已定义版本)并使用它来决定是否提交更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读