【发布时间】:2013-07-08 00:42:18
【问题描述】:
我知道这可能是重复的,具有讽刺意味的是,在我开始到处阅读之前,我以为我知道它的用途(不用说但我还是会说出来,请纠正我哪里错了):
它使程序员不必使用transaction.begin() 和commit()。
如果您有一个调用两个 DAO 方法的方法,通常每个方法都有一个 transaction.begin 和 transaction.commit 包含实际操作并调用它们,它将导致两个事务(如果假设以前的 DAO 方法可能会出现回滚问题也可以回滚)。
但是如果你在你的方法上使用@transactional,那么所有这些DAO调用将被包装在一个begin()-commit()循环中。当然,如果你使用@Transactional,DAO 不能使用我认为的begin() 和commit() 方法。
【问题讨论】:
-
要添加的一点是,如果您在方法中添加一些代码(如提交或开始编程),它将起作用。事务性仅将您的数据库连接更改为不自动提交。
-
和你说的一模一样。很好,你抓住了它!
标签: java spring transactions spring-jdbc