@OneToMany
부모와 자식 엔터티 간의 간단한 매핑에 문제가 있습니다. 자식 레코드는 컬렉션에서 제거해도 삭제되지 않습니다.
부모 :
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
아이:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
이제 childs Set에서 자식을 삭제하면 데이터베이스에서 삭제되지 않습니다. child.parent
참조를 무효화하려고 시도했지만 작동하지 않았습니다.
엔티티는 웹 애플리케이션에서 사용되며 삭제는 Ajax 요청의 일부로 발생합니다. 저장 버튼을 눌렀을 때 삭제 된 자식 목록이 없으므로 암시 적으로 삭제할 수 없습니다.