引发异常时,不会回滚添加到数据存储区的数据。这是正确的行为,因为它使用文件系统吗?或者它是否也应该回滚数据存储中的数据。我正在使用 Spring 3.2。我已将 Jackrabbit 部署到 JBoss 7.1.1。我正在使用 JtaTransactionManager,因为我也在使用数据库。编辑:
在阅读了 JTA 和 Spring 之后,我只在 Spring 配置文件中添加了这一行。似乎它注册了必要的东西。在我设置的“测试”中,我将一个文件存储在 Jackrabbit 中,然后我抛出一个运行时异常(之后我通常会持久保存到数据库,但由于异常中止它永远不会运行那么远,但这将是正常的案子)。所有这些都发生在服务层中的一个方法中,用@Transactional
. 但是,在引发异常后,我仍然在数据存储中看到该文件,我尝试使用一个空的数据存储,并且我希望在引发异常后该文件会消失,但它仍然存在。这个对吗?只是回滚的元数据(我不知道存储在哪里)?
<tx:jta-transaction-manager/>