Java 如何在使用hibernate对数据库进行任何更改或更新时获取警报

Java 如何在使用hibernate对数据库进行任何更改或更新时获取警报,java,mysql,hibernate,Java,Mysql,Hibernate,我不熟悉数据库和hibernate。我创建了学生注册项目,当有记录插入到学生个人表中时,我需要获得警报或任何消息。这样我可以从新插入的记录中获取电子邮件id,并向学生发送欢迎或一些消息。我已经完成了发送消息部分。现在我需要学习如何在数据库发生任何更改时获取警报,这将有助于维护整个数据库。希望这足够了 有人说HibernateEnvers很有用,有人说在mysql中使用触发器会有所帮助。请建议使用hibernate获取警报的最简单方法。您可以扩展该类并实现onFlushDirty方法 创建会话时使

我不熟悉数据库和hibernate。我创建了学生注册项目,当有记录插入到学生个人表中时,我需要获得警报或任何消息。这样我可以从新插入的记录中获取电子邮件id,并向学生发送欢迎或一些消息。我已经完成了发送消息部分。现在我需要学习如何在数据库发生任何更改时获取警报,这将有助于维护整个数据库。希望这足够了

有人说HibernateEnvers很有用,有人说在mysql中使用触发器会有所帮助。请建议使用hibernate获取警报的最简单方法。

您可以扩展该类并实现onFlushDirty方法

创建会话时使用拦截器:

session = sessionFactory.openSession(interceptor);

如果您的服务器是唯一正在写入数据库的实例,则可以使用JPA2回调注释:

在您的情况下,postpersist和/或postupdate

@Entity
public class Student{
    @PostPersist 
    public void onPostPersist() {
         sendMsg();
    }
}

保存或更新记录时,执行结果将立即被识别;因此,如果执行成功,则可以向用户发送消息。为什么要让hibernate提醒您呢


对于数据库的周报或月报,您只需添加其他字段即可。对于学生信息,您可以添加创建时间和更新时间,然后使用一些SQL聚合函数生成报告。

在数据库端,您可以使用triggersAm使用hibernate映射数据库中的表。所以我需要从Java方面做这件事。您好,mahesh,对于特定的学生注册页面,您可以在学生中插入任何记录的同时使用电子邮件功能,以便轻松跟踪您的数据库更改。谢谢Vishal,如果它是自动完成的,那么我可以每周、每月报告数据库中发生的更改或更新。为此,我需要通过代码执行。
@Entity
public class Student{
    @PostPersist 
    public void onPostPersist() {
         sendMsg();
    }
}