小编And*_*ann的帖子

envers多级实体修订howto

用户有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

jpa one-to-many many-to-one hibernate-envers

6
推荐指数
1
解决办法
1095
查看次数

标签 统计

hibernate-envers ×1

jpa ×1

many-to-one ×1

one-to-many ×1