gpt4 book ai didi

java - 交易对象在异常情况下有什么值(value)。?

转载 作者:搜寻专家 更新时间:2023-10-30 23:47:34 24 4
gpt4 key购买 nike

来自以下来源:hibernate transaction eg.

据记载,一个典型的交易应该使用以下成语:

Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
//do some work
...
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}

我的问题是,如果 tx 对象进入 catch block ,它有什么,即发生任何异常,这是 tx.commit() 的结果吗?如果是,那么如何,因为它什么都不返回。我的意思是要问 tx 的值何时何地发生变化以及发生什么变化?

问题 2)在只读事务的情况下是否有必要开始事务,即选择查询..

最佳答案

  1. 如果异常发生在:

    tx = sess.beginTransaction();

    然后 tx 将为空,因此什么都不会发生。

    如果tx赋值后抛出异常,那么tx代表一个数据库事务钩子(Hook)。您应该始终在出现异常时回滚事务,因为某些数据库驱动程序可能不会自动执行此操作。

  2. Yes, you should use transactions for read-only queries too .

关于java - 交易对象在异常情况下有什么值(value)。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26443952/

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