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