Я пытаюсь добавить envers в свой проект, но у меня проблемы с видимостью атрибута MappedSuperclass.Структура выглядит следующим образом:
Родительский абстрактный класс
@MappedSuperclass
abstract class Parent {
@ManyToOne
@JoinColumn(name = "joinedEntity_id")
protected JoinedEntity field;
}
Два дочерних класса, которые расширяют родительский класс с помощью аннотации @Audited и @AuditOverride, оба имеют одинаковую структуру:
@Audited
@AuditOverride(forClass = Parent.class, isAudited = true)
class Child extends Parent {
Child{ super(...); }
}
И присоединяемая сущность выглядит следующим образом:
public class JoinedEntity {
@Singular
@OneToMany(mappedBy = "field", cascade = CascadeType.ALL, orphanRemoval=true)
@LazyCollection(LazyCollectionOption.FALSE)
@AuditMappedBy(mappedBy = "field")
private List<Child> childs;
}
И ошибка возникает из-за того, что из класса JoinedEntity невозможно получить разрешение AuditMappedBy, которое указывает на атрибут абстрактного класса, даже если ядобавьте AuditOverride в дочерний класс.Вот ошибка:
Причина: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем entityManagerFactory, определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / orm / jpa /HibernateJpaAutoConfiguration.class]: сбой вызова метода init;вложенным исключением является org.hibernate.MappingException: @AuditMappedBy указывает на несуществующее свойство: $ path.Child.field