Я пытаюсь добавить аннотацию @Cascade
к получателю в объекте Hibernate, который является подклассом родительского класса, который является @MappedSuperclass
. Метод получения дочернего класса переопределяет метод получения, который уже определен и аннотирован в родительском классе. Мои занятия выглядят примерно так:
@MappedSuperclass
public abstract class ParentEntity {
private List<OtherEntity> others;
@OneToMany(mappedBy = "other")
public List<OtherEntity> getOthers() {
return this.others;
}
}
@Entity
public class ChildEntity extends ParentEntity {
// Trying to add @Cascade here but it doesn't work
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH})
@Override
public List<OtherEntity> getOthers() {
return super.getOthers();
}
}
@Entity
public class OtherEntity extends OtherParentEntity {
// Other stuff
}
У меня нет никакого контроля над базовым классом, поэтому я не могу его изменить. Если я добавлю аннотацию @Cascade
в метод получения базового класса, он будет работать, как и ожидалось, но попытка заставить его работать, добавив его в метод получения подкласса, до сих пор не увенчалась успехом и сохранения не каскадировались. Я делаю что-то не так или добавление дополнительных аннотаций таким способом просто невозможно?