gpt4 book ai didi

java - JPA - 将一个实体更新/删除语句重定向到镜像表

转载 作者:行者123 更新时间:2023-11-29 05:18:04 24 4
gpt4 key购买 nike

我在 Wildfly 服务器上使用 Java EE 7。我有一个奇怪的场景,客户端有两个表——“employees”和“employees_modified”。第二个表与第一个表具有完全相同的结构和服务器作为修改存储。因此,如果员工将他的名字从“john”更改为“john-1”,我们将写信给 employees_modified

insert into employees_modified(first_name) values("john")

请注意“employees_modified”表中的其他字段为空。

问题是:有没有办法以某种方式映射这两个表,并用 employees_modified 中存在的值覆盖 employees 中的值。

我查看了@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 和@AttributeOverrides,但这些解决方案似乎不适合我的场景。

最佳答案

hibernate envers ,它简单地解决了你的问题。将 envers 附加到您的项目。使用注释 @Audited 和 @AuditTable(value = "employees_modified") 将第一个表置于审计之下。但正如@Predrag Maric 所指出的,将第二个表的其他字段留空很重要,您可以在实体中使用@PostPersist(或纯 hibernate 中的监听器)方法。在此方法中,您可以描述额外的逻辑 employees_modified 实体创建和持久化。

关于java - JPA - 将一个实体更新/删除语句重定向到镜像表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942470/

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