gpt4 book ai didi

mysql - 监听数据库表更新/更改

转载 作者:行者123 更新时间:2023-11-30 00:55:08 24 4
gpt4 key购买 nike

我是 Hibernate 新手。我正在使用 Java 和 Hibernate 开发后端服务。

我有一个 Student 实体,它与 Group 实体具有多对多关系。在数据库中,我有一个 student 表和一个 group 表:

@Entity
@Table(name = "student")
public class Student {
private int student_id; //primary key

@ManyToMany(mappedBy = "students")
private Set<Group> groups = new HashSet<Group>();

@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name="student_group",
joinColumns={@JoinColumn(name="student_id")},
inverseJoinColumns={@JoinColumn(name="group_id")})
public Set<Group> getGroups() {
return groups;
}

public void setGroups(Set<Group> groups) {
this.groups = groups;
}

//Setter & Getter for student_id
...

}

正如你在上面的hibernate注释中看到的,数据库中有一个连接表student_group。我想要实现的是,当客户端的请求到达我的后端服务(带有学生ID)时,我想知道student_group是否连接数据库 已更新该学生,例如是否插入新行(新组)(分配给该学生)或是否已更新现有行的值。如果有这样的更新/更改,我会通知客户。

使用hibernate,如何实现这种监听器来监听数据库表中的更改/更新?

最佳答案

您可以通过编写插入和更新触发器来实现这一点。

可以在表级别创建触发器。它们与您使用的 ORM 框架无关。插入触发器可以配置为在插入之前触发。更新触发器可以配置为在更新之前或之后执行。以下链接提供了有关触发器的简要说明:

http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_tr.htm

关于mysql - 监听数据库表更新/更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com