트리처럼 부모 자식 관계를 캡처하는 테이블을 만들려고합니다. 이 구조체 "id"와 "parent"를 포착하기 위해 두 개의 열만 유지하려고합니다. 행을 삭제할 때 데이터베이스에서 모든 하위 항목을 계단식으로 삭제할 수 있어야합니다. 아래는 내가 생성 한 Hibernate Entity입니다. 그러나 주석을 추가했습니다. @OnDelete(action = OnDeleteAction.CASCADE)
ON DELETE CASCADE
은 테이블이 Hibernate에 의해 생성 될 때 테이블에 추가되지 않습니다.Hibernate @OnDelete cascade 같은 테이블
이것은 버그입니까? 아니면 내가 누락되었거나 이해하지 못하는 것이 있습니까?
@Entity
public class Tree {
@Id
@Column(name = "id", nullable = false)
private Long id;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "parent", nullable = true)
private List<Tree> children;
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "parent", nullable = false)
private Tree parent;
public Tree(Long id) {
this.id = id;
}
public Tree() {
}
public Long getId() {
return id;
}
protected void setId(Long id) {
this.id = id;
}
public List<Tree> getChildren() {
return children;
}
public void setChildren(List<Tree> children) {
this.children = children;
}
public Tree getParent() {
return parent;
}
public void setParent(Tree parent) {
this.parent = parent;
}
}
'@ OneToMany' 컬렉션에'orphanRemoval = true'을 넣으려고 했습니까? ('@ ManyToOne'에 ** NOT **)? –
안녕하세요, Pitor, 나는 그것을 시도했지만 "ON DELET CASCADE"는 여전히 테이블에 추가되지 않습니다. –