Jpa envers多级实体修订指南
用户有n个联系人。联系人可以有本地化注释(注释在联系人之间共享)。Java bean:Jpa envers多级实体修订指南,jpa,one-to-many,many-to-one,hibernate-envers,Jpa,One To Many,Many To One,Hibernate Envers,用户有n个联系人。联系人可以有本地化注释(注释在联系人之间共享)。Java bean: @Audited @Entity public class User { @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) Set<Context> contacts; } @Audited @Enti
@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;
}
@已审核
@实体
公共类用户{
@OneToMany(fetch=FetchType.EAGER,
cascade=CascadeType.ALL,
(删除=真)
设置联系人;
}
@审计
@实体
公共类联系人{
@manytone(fetch=FetchType.EAGER,
级联={
CascadeType.MERGE,
cascade type.PERSIST,
CascadeType.REFRESH})
评论;
}
@审计
@实体
公开课评论{
字符串de;
字符串en;
字符串fr;
}
如果我更改联系人(contact.Comment)的德语本地化(Comment.de),那么这将创建一个新版本,但不适用于用户。如果我向envers询问用户修订,我将永远看不到“2级更改”,因为用户和联系人之间的关系没有更改,只有联系人注释中的德语字符串更改
但我想在用户历史记录中看到一个新条目(更改了联系人XYZ的德语注释)
我该怎么做D
Thxs也许可以使用自定义修订日志(http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html#envers-修订日志),其中存储与变更相关的“根”实体。这可能不是最有效的,但取决于您的域模型,这可能是您想要的。您是否能够解决此问题?此问题的解决方案是否已集成到最新版本的Envers中??我和他有同样的问题。