Итак, у меня есть два класса сущностей: Подписка и MailDetail .Между ними существует взаимно-однозначное отношение.Вот классы -
Subscription.class-
@Data
@Entity
@AllArgsConstructor
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public class Subscription {
@Id
@GeneratedValue(strategy =`enter code here` GenerationType.SEQUENCE, generator = "subscription_subscription_id_seq")
@SequenceGenerator(initialValue = 1, allocationSize enter code here= 1, name = "subscription_subscription_id_seq", sequenceName = "subscription_subscription_id_seq")
@Column
private Long subscriptionId;
@Column
private String template;
@Column
private String fileFormat;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "mail_id", referencedColumnName = "mail_id")
private MailDetail mailDetail;
}
MailDetail.class -
@Data
@Entity
@Audited
public class MailDetail {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mail_detail_mail_id_seq")
@SequenceGenerator(initialValue = 1, allocationSize = 1, name = "mail_detail_mail_id_seq", sequenceName = "mail_detail_mail_id_seq")
@Column
private Long mailId;
@Column
private String emailId;
}
Таким образом, создаются две таблицы аудита, subscription_aud и mail_detail_aud .Создание / обновление в таблице mail_detail осуществляется только через репозиторий подписки.Поэтому мое требование заключается в том, чтобы при каждом изменении полей таблицы mail_details мне требовалась запись аудита в subscription_aud.Или, в принципе, я хочу, чтобы изменение в таблице mail_detail рассматривалось как изменение в таблице подписки.
Я использую hibernate envers для аудита.Как мне этого добиться?