gpt4 book ai didi

java - EJB-2.0事务回滚是否撤消/恢复数据库更改?

转载 作者:行者123 更新时间:2023-12-01 10:33:38 25 4
gpt4 key购买 nike

假设我在我的 ejb bean 方法中编写了一些与事务相关的代码,如下所示:

UserTransaction utx = sessionContext.getUserTransaction();
try {
int status = 0;
utx.begin();
status = 1;
//SEGMENT- 1: UPDATE DATABASE

//SEGMENT- 2: SOME OTHER CODE - which may throw Exception

utx.commit();
} catch (Exception e) {
utx.rollback();//SEGMENT- 3: My QUESTION at here, is it bollbak DATABASE changes also?
// OR only rollback value of variable 'status' to '0'
e.printStackTrace();
}

<强>1。 BEGIN:开始交易后utx.begin();
更改了java变量status = 1;
已更改数据库 (SEGMENT- 1)。例如数据库中的一些插入和更新
然后执行一些其他计算(SEGMENT- 2)

2。提交:现在在提交utx.commit()之前
在(SEGMENT-2)处出现一些异常

3。 ROLLBACK:因此catch block 捕获异常(SEGMENT-3)并执行事务回滚utx.rollback()

我的问题:
utx.rollback()是否回滚
所有数据库更改和java变量更改?
或者仅数据库更改
仅回滚java变量更改?

最佳答案

utx.begin() 之后所做的所有数据库更改都将回滚。

utx.rollback() 对您的 java 变量没有影响。

关于java - EJB-2.0事务回滚是否撤消/恢复数据库更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34939865/

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