gpt4 book ai didi

java - 跟踪更改的数据库设计 - w/Hibernate

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:36 25 4
gpt4 key购买 nike

嘿,我在数据库设计方面遇到了困难。正如您从我当前的设计中看到的那样,Registration 可以有多个 EmployerRegistrations,而 EmployerRegistrations 可以有多个 ClientRegistrations。从这里开始很简单。用户每年需要创建一个新的注册。

不幸的是,我需要能够跟踪更改/修正。可以更改注册信息(姓名、地址等)或客户注册信息(删除/添加客户或删除/添加雇主)。

我尝试了很多不同的设计,但到目前为止,没有什么感觉是“正确的”。跟踪注册表中的修改很容易,因为这会影响其上方的所有表格。所有 id 都已更新。是对 ClientRegistration 表的更改让我陷入困境。如您所见,我有一个我正在尝试的版本列,但它对我帮助不大。使用 Hibernate 感觉每个修改后的客户端注册都需要它自己唯一的注册对象,但是为任何客户端注册修改创建一个全新的注册似乎不正确/高效。

我已经为此奋斗了大约一个星期,因此非常感谢您提供任何帮助。谢谢!

enter image description here

最佳答案

你检查过了吗Hibernate Envers ?它是 Hibernate 的自动版本控制插件。使对象更改的跟踪历史变得非常容易。它以 AOP 方式配置,因此您可以简单地注释要审计的对象并让 Envers 处理细节:

@Entity
@Audited
public class Person {
@Id
@GeneratedValue
private int id;

private String name;

private String surname;

@ManyToOne
private Address address;
...
}

关于java - 跟踪更改的数据库设计 - w/Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591590/

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