在单个事务

时间:2016-09-27 16:09:17

标签: java mysql spring-jdbc spring-transactions

我们有几个类,用于以Command-Query-Separation方式写入和读取数据库层。

这些类中的每一个都分别用@Transactional注释@Transactional(readOnly = true)。

现在我们已经实现了一个数据导入,它创建了许多对象并使用我们的命令层将它们写入数据库。

目前,每个单个对象的写入都是在自己的事务中完成的,我很确定这是一个主要的性能杀手。

是否有一种简单的方法以某种方式注释数据导入类,即使它在命令层中多次调用许多@Transactional注释方法,所有操作都将在单个事务中完成

这甚至是提高插入性能的有效方法,还是您认为这是一个坏主意?

1 个答案:

答案 0 :(得分:0)

错误一:我使用了ExecutorService,正如我在这篇文章中所读到的。如何在多线程弹簧中使用spring事务不支持多线程与事务相结合。 错误二:我替换了ExecutorService,直接用注释@Transactional调用了spring托管类方法,但是这次它没有工作,因为类嵌套在调用类中,因此它不被视为“来自外部的调用” ”。