SpringBoot—当记录是实体表的CRUD时,我需要向通知表插入一条记录—类似于数据库触发器

SpringBoot—当记录是实体表的CRUD时,我需要向通知表插入一条记录—类似于数据库触发器,spring,spring-boot,hibernate,jpa,Spring,Spring Boot,Hibernate,Jpa,我有一个场景,当对实体的任何记录进行任何更改(CRUD)时,我需要执行自定义逻辑。示例-如果添加了任何新产品,我想在通知表中插入一条记录,以便在仪表板上显示通知 我目前是如何处理的- 目前,我在一个方法中添加了这个逻辑,并在产品实体发生任何CRUD操作后调用该方法 问题陈述 我必须从每一个可能发生CRUD的方法调用这个方法。因此,有可能出现错误 问题 hibernate中有没有类似DB触发器的功能。所以,实体应该有一个侦听器,当实体发生CRUD时,逻辑被触发 注意-我已经读过关于@EntityL

我有一个场景,当对实体的任何记录进行任何更改(CRUD)时,我需要执行自定义逻辑。示例-如果添加了任何新产品,我想在通知表中插入一条记录,以便在仪表板上显示通知

我目前是如何处理的- 目前,我在一个方法中添加了这个逻辑,并在产品实体发生任何CRUD操作后调用该方法

问题陈述 我必须从每一个可能发生CRUD的方法调用这个方法。因此,有可能出现错误

问题 hibernate中有没有类似DB触发器的功能。所以,实体应该有一个侦听器,当实体发生CRUD时,逻辑被触发


注意-我已经读过关于@EntityListener的文章,但是发布这个问题只是为了确保@EntityListener是这个问题的最佳解决方案

是的,您可以使用
@EntityListener
来处理这些更新。然而,在我看来,这更像是
服务
业务逻辑。我强烈建议您将其融入业务逻辑,而不是将通知作为副作用写入