gpt4 book ai didi

jpa - envers 多级实体修订方法

转载 作者:行者123 更新时间:2023-12-04 12:55:51 27 4
gpt4 key购买 nike

用户有 n 个联系人。联系人可以有本地化的评论(评论在联系人之间共享)。 Java Bean:

@Audited
@Entity
public class User {
@OneToMany(fetch = FetchType.EAGER,
cascade = CascadeType.ALL,
orphanRemoval = true)
Set<Context> contacts;
}

@Audited
@Entity
public class Contact {
@ManyToOne(fetch = FetchType.EAGER,
cascade = {
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH})
Comment comment;
}

@Audited
@Entity
public class Comment {
String de;
String en;
String fr;
}

如果我更改联系人 (Contact.comment) 的德语本地化 (Comment.de),那么这将创建一个新版本,但不会为用户创建。如果我向 envers 询问用户修订,我将永远不会看到这种“第 2 级更改”,因为用户和联系人之间的关系没有发生变化,只有联系人评论中的德语字符串发生了变化。

但我想在用户历史记录中看到一个新条目(更改了联系人 XYZ 的德语评论)。

我怎样才能做到这一点? :D

谢谢

最佳答案

也许一个想法是使用自定义修订日志(http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html#envers-revisionlog)在其中存储“根”实体/实体与更改相关。这可能不是最有效的,但取决于您的域模型,这可能是您想要的。

关于jpa - envers 多级实体修订方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033275/

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