1

有没有办法在 Spring 管理的事务中设置检查点,如果出现问题,回滚应该只发生到最后一个检查点。

4

3 回答 3

2

IMO 如果我们说 transaction 它必须是all 或 none
回滚到检查点意味着我们正在执行部分事务。
不过,如果您想回滚到某个特定点,那么将任务转换为事务数将是一个不错的选择。(如果可以转换成多笔交易)

于 2012-07-09T11:51:51.123 回答
0

您可以在 spring 中使用 SavePointManager 管理检查点。要首先使用它,您必须使用 TransactionTemplate 并进行程序化交易管理,以便您可以控制交易状态

程序化交易

然后使用 SavePointManager 方法创建检查点。

保存点管理器

如果您想通过方面进行管理,那么使用客户注释和方面而不是 spring bean 将非常容易编写。

于 2012-07-09T13:33:01.130 回答
0

我赞同Ajinkya的回答。Spring 有一个独立于技术的事务抽象,并具有许多不同技术(Hibernate、JPA、JDBC 等)的实现,其中只有一些具有您似乎需要的特性。

Spring Transactions 保持简单,因此可以将持久层切换到新技术,而无需更改服务层中的任何内容。这种灵活性是以功耗为代价的,因为在所有支持的平台上只有最常见的事务隐喻可用。学会接受限制并将您的任务转换为几个子任务。

于 2012-07-09T13:08:48.917 回答