在基于 Spring 的应用程序中,每当更新一个表时,我想更新一些数据库 (MySQL) 表。逻辑很复杂,所以我不能依赖数据库触发器。我想用Java实现逻辑。我有触发功能的代码。我遇到了Spring 自定义事件,并正在考虑使用它们来使代码更有条理。我在想,每当 table1 在Repository
实例中更新时,它都会触发一个事件,该事件也会更新另一个表。现在在里面Repository
我有一个@Autowired
需要手动调用的其他数据库表的存储库。我可以获得更结构化的实现逻辑吗?
- 文档说这些事件是同步的。调用事件侦听器的调用顺序是什么?
我可以结束循环吗?如何防止循环?任何简单的想法。编辑:我猜只要我不在监听器中发布另一个事件,周期就不会成为问题。
顺便说一句,我在所有存储库中都有一个
@Autowired
实体管理器实例。这些实体管理器实例在所有存储库中都相同吗?这是配置文件的样子。编辑:我问这个以了解我是否需要将所有对象持久化到同一个实体管理器实例才能成为同一个事务的一部分。我的实体管理器实例已注释@PersistenceContext
。我是否正确假设实体管理器在使用注释声明时具有单例范围。
编辑:以防万一我@Transactional
对所有存储库类都有注释。