请建议我解决这个问题。
使用org.springframework.orm.hibernate3.HibernateTransactionManager作为服务的事务管理器。并将代码包含在此事务中,如此
TransactionStatus transactionDefinition = new DefaultTransactionDefinition();
DefaultTransactionDefinition transactionStatus = transactionManager.getTransaction(transactionDefinition);
//DaoCalls
transactionManager.commit(transactionStatus);
Dao调用在数据库表上运行了很多CRUD(删除,更新,插入)操作。
问题是这些表被锁定了很长时间。 所有这些Dao调用都应该在单个事务中完成。
任何人都可以建议我解决这个问题。
答案 0 :(得分:1)
我只看到几个选项:
答案 1 :(得分:1)
我会考虑在数据库上编写存储过程来执行复杂的操作。这样你就可以更好地控制正在执行的锁定和查询,并且因为操作发生在数据库本身上,所以你没有将数据移入和移出休眠的开销。