Я использую Hibernate Envers для отслеживания всех изменений, внесенных в мои объекты базы данных.Эти объекты иногда связаны (однонаправленными) отношениями родитель-ребенок.Поскольку мне нужны запросы, которые должны перечислять все удаленные объекты, я полагаюсь на таблицу аудита для envers, чтобы пометить удаленные объекты (столбец revtype в таблице * _aud).Однако эти записи не создаются ни для одного из моих дочерних объектов, когда их родительский объект удаляется.
Мой класс объектов выглядит следующим образом:
@Entity
@Audited
public class MyClass {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, unique = false, length = 1024)
private String name;
// An object can have exactly one parent, but multiple children
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
private MyClass parent;
}
Я подозреваюэто как-то связано с действием каскадного удаления, которое каким-то образом обходит спящий режим hibernate.Как я могу добиться того, чтобы записи в таблице аудита для дочерних объектов создавались, и в то же время следить за тем, чтобы все дочерние элементы автоматически удалялись из базы данных при удалении родительского объекта, на который есть ссылка?