草庐IT

TransactionSynchronization

全部标签

java - JPA/@PostPersist @PostUpdate - 交易

我目前正在使用@PostPersist和@PostUpdate,在这些触发器中我正在持久化其他实体。问题是,这些触发器是否在同一事务中,如果不是,是否可以强制执行?对我来说,它是这样工作的。当我查看日志时,事务不存在(它是在触发器启动之前提交的)这阻止了我(在注入(inject)bean的持久方法上没有REQUIRES_NEW)将其他实体保存在数据库。REQUIRED属性被完全忽略,MANDATORY属性不抛出异常。这可能是JUnit的问题(因为我处于开发阶段并且没有在完整环境中测试行为。)?如果无法在此触发器上扩展事务,如何确保回滚发生在@PostPersist和@PostUpdat

java - 在 Spring 中使用事务时创建提交后

由于某些原因,我使用SpringPlatformTransactionManager手动执行事务提交和回滚,我需要做的是设置一个Hook,以便在事务提交后执行提交后操作。通过查看:voidcommit(TransactionStatusstatus)throwsTransactionException;如果没有抛出异常,我无法确定交易是否成功,除非假设它是成功的。我可以使用AOP作为一种选择,但是如何以编程方式执行它,也许使用回调方法? 最佳答案 您可以通过TransactionSynchronizationManager以更简单的

java - 在 Spring 中使用事务时创建提交后

由于某些原因,我使用SpringPlatformTransactionManager手动执行事务提交和回滚,我需要做的是设置一个Hook,以便在事务提交后执行提交后操作。通过查看:voidcommit(TransactionStatusstatus)throwsTransactionException;如果没有抛出异常,我无法确定交易是否成功,除非假设它是成功的。我可以使用AOP作为一种选择,但是如何以编程方式执行它,也许使用回调方法? 最佳答案 您可以通过TransactionSynchronizationManager以更简单的