需要帮助Spring事务处理巨大的日期操作

时间:2012-04-16 08:56:05

标签: java spring spring-mvc

请建议我解决这个问题。

使用org.springframework.orm.hibernate3.HibernateTransactionManager作为服务的事务管理器。并将代码包含在此事务中,如此

TransactionStatus transactionDefinition = new DefaultTransactionDefinition();
DefaultTransactionDefinition transactionStatus = transactionManager.getTransaction(transactionDefinition);

//DaoCalls

transactionManager.commit(transactionStatus);

Dao调用在数据库表上运行了很多CRUD(删除,更新,插入)操作。

问题是这些表被锁定了很长时间。 所有这些Dao调用都应该在单个事务中完成。

任何人都可以建议我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我只看到几个选项:

  • 优化查询
  • 并行中运行一些查询(使用java.utils.concurrent中的Executors),如果可以的话
  • 根据您的要求尝试减少锁定(例如补偿使用读取或写入修复)

答案 1 :(得分:1)

我会考虑在数据库上编写存储过程来执行复杂的操作。这样你就可以更好地控制正在执行的锁定和查询,并且因为操作发生在数据库本身上,所以你没有将数据移入和移出休眠的开销。