CascadeType.ALL을 사용하는 JPA의 고아 노드
JPA의 CascadeType.ALL을 사용함에도 불구하고 고아 노드가 데이터베이스에 지속되어 삭제를 방해합니다. 이 문제를 해결하려면 지속성 공급자 및 JPA 버전에 따라 여러 가지 접근 방식이 있습니다.
Hibernate 구성
Hibernate를 사용하는 경우 다음에서 CascadeType.DELETE_ORPHAN 주석을 명시적으로 정의합니다. JPA CascadeType.ALL과 결합:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private List<Bikes> bikes;
JPA 솔루션(Hibernate 없음)
Hibernate가 없는 경우 상위 레코드를 제거하기 전에 하위 요소를 명시적으로 삭제합니다.
JPA 2.0
JPA 2.0에는 orphanRemoval 속성이 도입되었습니다.
@OneToMany(mappedBy="foo", orphanRemoval=true)
By orphanRemoval을 true로 설정하면 JPA는 상위 엔터티가 제거될 때 고아 하위 레코드를 자동으로 삭제합니다.
위 내용은 CascadeType.ALL을 사용하여 JPA에서 고아 노드를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!