Может ли envers проверять изменения по всей иерархии родительских / дочерних таблиц? - PullRequest
0 голосов
/ 20 февраля 2019

Я видел этот вопрос в других формах, датированных еще в 2012 году, но сейчас это 2019 год, и у меня такая же проблема с envers.Кто-нибудь понял это?!?!?

Я пересылаю этот вопрос отсюда: включает многоуровневую редакцию сущности howto

У пользователя n контактов.Контакт может иметь локализованный комментарий (комментарии распределяются между контактами).Java Beans:

@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;
}

Если я изменю немецкую локализацию (Comment.de) контакта (Contact.comment), то это создаст новую ревизию, но не для Пользователя.Если я запрашиваю envers для пользовательских ревизий, я никогда не увижу это «изменение уровня 2», потому что отношение между пользователем и контактом не изменилось, изменилась только немецкая строка в комментарии к контакту.

Но я хочу видеть вИстория пользователя новой записи (изменен немецкий комментарий для контакта XYZ).

ЭТО ЛИБО РЕШЕНО?

...