gpt4 book ai didi

java - 如何在实体持久化或更新时自动更新实体

转载 作者:行者123 更新时间:2023-12-02 00:48:05 26 4
gpt4 key购买 nike

我有一个实体引用另一个实体,如下所示:

class School {
private boolean used = false;
}

class Student {
@ManyToOne
private School school;
}

属性used表示School实体是否被使用、被引用。因此,在创建时,School 实体的 used 应该为 false,但是一旦 Student 对其进行引用,used code> 必须变为 true。有没有像数据库中的触发器一样自动执行此操作的方法?

我尝试在 Student 实体上使用 @PrePersist@PostPersist,如下所示,但它不起作用:

@PrePersist
public void prePersist(){
school.setUsed(true);
}

谢谢

最佳答案

我的想法是学校也应该有一份相反的学生名单。即

class School {
private List<Student> students;
}

因此,当学校加载时,您可以轻松访问学生列表。那么查明学校是否正在被使用就变得非常简单。您将不再需要 boolean 标志,只需这样:

public boolean hasStudents() {
return students.size() > 0;
}

关于java - 如何在实体持久化或更新时自动更新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362693/

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