[英]JPA listener transaction approach for procedure calling
在我的项目中,我们使用 spring 数据 JPA 和 Eclipselink 实施,并面临实施一些更新后操作的挑战。 我有 2 个使用双向 onetomany 关联链接的实体,需要使用此实体持久化的数据来自前端应用程序,通过 spring REST。 例如,可以将关联视为 Employee 和 EmployeeAddress(many),当数据到达存储库层时,它使用 JPA 合并方法持久化到 DB。
在合并(更新后)之后,我只需要识别更新的地址(修改的记录)并调用数据库过程进行更多处理,如果此步骤失败,则需要回滚甚至合并操作,但面临挑战。
尝试使用 JPA 侦听器,但似乎不支持 spring 事务,应用程序上下文查找以某种方式得到了实体管理器并调用了过程,但是当此事务失败时,它只恢复了在过程中修改的数据并且没有恢复合并操作数据,它被包裹在一个具有@Transactional 的方法。
由于 JPA 在更新期间在内部识别修改的记录并仅对修改的记录发出更新语句,无论如何我可以获取该数据并存储在某处,然后在 spring 方法中调用我的数据库过程,合并操作后具有@Transactional,因此将处理事务问题关心?
有没有其他方法可以实现这种情况? 由于项目限制,尝试了不同的方法但没有成功,并且将程序逻辑移动到 JPA 也是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.