- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我必须在处理变量之前更新数据库中变量的状态,以确保只有一个线程处理它。
为此,我正在使用 spring 的 transactionTemplate
所以我的疑问是:如果我有类似的东西:
TransactionTemplate(new TransactionCallback()){
execute(){
try{
query 1 - having select for update
query 2 - having update
} catch(Exception e){
TransactionStatus.setRollBackOnly();
throw e;
}
}
}
我使用 spring 的 jdbctemplate
和 autocommit on
。
发生了多少次提交?每个查询都会提交吗?这是实现同步的好方法吗?
最佳答案
当使用 TransactionTemplate
时,JDBC 连接切换为手动提交,模板管理事务生命周期,因此您将对回调内的所有操作进行单一提交。 select for update 获取被访问行的独占写锁,事务结束时释放。
即使程序化方法行之有效,我还是建议采用声明式方法以最终获得更清晰的代码和灵活的配置。您可以使用 @Transactional
(查看 REPEATABLE_READ
隔离级别):
@Transactional(isolation=Isolation.REPEATABLE_READ)
public void transactionalMethod() {
query 1 - having select for update
query 2 - having update
}
关于java - Spring TransactionTemplate 和提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115995/
Spring 框架提供了两种编程事务管理的方法: 使用 TransactionTemplate . 使用 PlatformTransactionManager直接执行。 以上描述在这里:http://
由于并发访问,我遇到了数据结构损坏的问题。我试图排除可能的原因,但我不确定 Spring TransactionTemplate 是如何工作的。 有多个线程将独立列表传递给 CallbackHandl
我必须在处理变量之前更新数据库中变量的状态,以确保只有一个线程处理它。 为此,我正在使用 spring 的 transactionTemplate所以我的疑问是:如果我有类似的东西: Tran
我想知道 TransactionTemplate 的 setPropagationBehavior 究竟做了什么。谁向谁传播什么?我看到它有很好的文档记录,但我不了解此 PropagationBeha
我的 DAO 中的以下代码运行良好。 public void insert(final Person person) { transactionTemplate.execute(new Tra
我正在尝试使用 transactionTemplate 来管理我的交易。代码可能如下: private Boolean isCleanSuccess(){ return transaction
我正在使用 DB 连接池的自定义数据源(apache DBCP2 和 MySQL 数据库版本 8)进行连接池,并尝试使用 Spring TransactionTemplate 删除 DB 对象(超过
我的服务中有几个@Transactional私有(private)方法,由于不推荐使用@Transactional而不是私有(private)方法,所以我使用org.springframework.t
我的 Spring 应用程序中有一个特定的流程调用。 我有一个存储库,并且我在第一次调用时调用了 sell() 方法。 @Service @Transactional public class Ser
我目前正在处理的代码中有一个被许多线程使用的单例,除了 TransactionTemplate 和 SimpleJdbcTemplate 的两个字段外没有任何状态,这两个字段在单例函数中用于访问数据库
我不太确定如何提出这个问题,所以尽管告诉我我的想法完全错误。 我想使用 JdbcTemplate 和 TransactionTemplate。我首先将我的连接池初始化为数据源,然后创建一个事务管理器作
有人可以解释为什么第一个单元测试类工作而第二个测试类失败并出现锁定等待超时错误? 第一个类: public class Test1 extends AbstractTransactionalJUnit
我正在尝试创建 TransactionTemplate 的模拟 var tTemplate = MockRepository.GenerateMock(); var tDelegate = MockR
我是一名优秀的程序员,十分优秀!