在这份春季文件中http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/transaction.html http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/transaction.html.它谈论物理和逻辑事务。我编写了一个非常简单的程序来理解它
TransactionObject.java
class TransactionObject {
private static Connection conn;
TransactionObject() {
try {
conn = DriverManager.getConnection("DB_URL", "USER", "PASS");
} catch (SQLException e) {}
}
void rollBack() {
try {
conn.rollback();
} catch (SQLException e) { }
}
void Commit() {
try {
conn.commit();
} catch (SQLException e) { }
}
}
ClassMethodUnderTransactionObject.java
public class ClassMethodUnderTransactionObject {
// start fresh TransactionObject
TransactionObject logical= new TransactionObject();
M2(); // call M2 use same logical object
M3(); // call M3 use same logical object
// For M2 and M3 it is logical transaction because both using same transaction object
if(error){
logical.rollBack();
} else {
logical.Commit();
}
// create another instance of TransactionObject
TransactionObject physical=new TransactionObject();
M4(); // call M4 use different TransactionObject object
if(error){
physical.rollBack();
} else {
physical.Commit();
}
因此,M4 使用相对于 M2 和 M3 的物理事务,因为 M4 使用不同的事务对象
这是我们应该理解的方式吗?还有更多需要理解的吗?请帮助我理解它。
我是这样理解的
-
physical transaction
来自外部世界
-
logical transaction
是你的内在。
这会产生文档中描述的许多后果。
我不明白你的例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)