Предположим, у меня есть две сущности: родительский объект и дочерний объект. Я хочу, чтобы у ребенка была связь с родительской сущностью и ссылка, но я не хочу, чтобы родитель знал об этом. Причина этого в том, что существует множество таких отношений, и явное указание отношений для всех этих детей будет означать постоянное обновление и загрязнение родительских объектов. Однако я все еще хочу, чтобы удаления родительского объекта каскадно пересекались с дочерним. В качестве дополнительного ограничения дочерний объект всегда имеет ссылку на родительскую сущность, устанавливая атрибут, который ссылается на идентификатор родителя. Предположим, у меня есть что-то вроде:
@Entity
class Child {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(nullable=false)
private Long parentId;
@ManyToOne(fetch=FetchType.LAZY, optional=false)
@JoinColumn(name="parentId", insertable=false, updatable=false, nullable=false, unique=false)
private Parent parentEntity;
// etc...
}
@Entity
class Parent {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
// etc...
}
Тогда есть ли способ, которым удаления родительского объекта могут каскадно передаваться дочернему объекту без добавления дополнительных отношений к родительскому объекту?
Было бы предпочтительным решение, в котором используются только аннотации JPA, но любая помощь приветствуется.