Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring自定义事件实现触发器安全吗_Java_Spring_Hibernate_Event Handling - Fatal编程技术网

Java 使用Spring自定义事件实现触发器安全吗

Java 使用Spring自定义事件实现触发器安全吗,java,spring,hibernate,event-handling,Java,Spring,Hibernate,Event Handling,在基于Spring的应用程序中,每当更新一个表时,我都要更新一些数据库(MySQL)表。逻辑很复杂,所以我不能依赖于数据库触发器。我想用Java实现这个逻辑。我有触发函数的代码。我偶然发现并正在考虑使用它们使代码更加结构化。 我在想,每当在存储库实例中更新table1时,它都会触发一个事件,该事件也会更新另一个表。现在在存储库中,我有一个@Autowired存储库,用于其他需要手动调用的数据库表。我可以得到更结构化的实现逻辑吗 文件上说这些事件是同步的。调用的事件侦听器的调用顺序是什么 我能以循

在基于Spring的应用程序中,每当更新一个表时,我都要更新一些数据库(MySQL)表。逻辑很复杂,所以我不能依赖于数据库触发器。我想用Java实现这个逻辑。我有触发函数的代码。我偶然发现并正在考虑使用它们使代码更加结构化。 我在想,每当在
存储库
实例中更新table1时,它都会触发一个事件,该事件也会更新另一个表。现在在
存储库
中,我有一个
@Autowired
存储库,用于其他需要手动调用的数据库表。我可以得到更结构化的实现逻辑吗

  • 文件上说这些事件是同步的。调用的事件侦听器的调用顺序是什么
  • 我能以循环结束吗?我如何防止循环?任何简单的想法。 编辑:我想只要我不在侦听器中发布另一个事件,周期就不会成为问题

  • 另外,我在所有存储库中都有一个
    @Autowired
    实体管理器实例。这些实体管理器实例在所有存储库中都是相同的吗?这是它的外观。 编辑:我问这个问题是为了了解我是否需要将所有对象持久化到同一个entity manager实例,以便成为同一事务的一部分。我的实体管理器实例被注释为
    @PersistenceContext
    。当使用注释声明实体管理器时,我是否正确地假设实体管理器有一个单例范围

  • 编辑:以防万一,我在所有存储库类上都有
    @Transactional
    注释