7

ユーザーは 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

ありがとう

4

1 に答える 1

1

「 root" 変更が関連するエンティティ。これは最も効率的ではないかもしれませんが、ドメイン モデルによっては、これが必要な場合があります。

于 2012-11-13T11:41:39.340 に答える