And*_*ann 6 jpa one-to-many many-to-one hibernate-envers
用户有n个联系人.联系人可以具有本地化的注释(联系人之间共享注释).Java豆:
@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;
}
Run Code Online (Sandbox Code Playgroud)
如果我更改了联系人(Contact.comment)的德语本地化(Comment.de),那么这将创建一个新版本,但不会为用户创建.如果我问envers for User Revisions,我将永远不会看到这个"Level 2 change",因为User和Contact之间的关系没有改变,只有联系人评论中的德语字符串被更改了.
但我希望在用户历史记录中看到一个新条目(更改联系XYZ的德语评论).
我怎样才能做到这一点?:d
Thxs
也许一个想法是使用自定义修订日志(http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html#envers-revisionlog),在其中存储“根”实体/与更改相关的实体。这可能不是最有效的,但根据您的域模型,这可能是您想要的。
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |