CascadeType.ALL을 사용하는 JPA의 고아 노드
JPA의 CascadeType.ALL을 사용함에도 불구하고 고아 노드가 데이터베이스에 지속되어 삭제를 방해합니다. 이 문제를 해결하려면 지속성 공급자 및 JPA 버전에 따라 여러 가지 접근 방식이 있습니다.
Hibernate 구성
Hibernate를 사용하는 경우 다음에서 CascadeType.DELETE_ORPHAN 주석을 명시적으로 정의합니다. JPA CascadeType.ALL과 결합:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private Listbikes;
JPA 솔루션(Hibernate 없음)
Hibernate가 없는 경우 상위 레코드를 제거하기 전에 하위 요소를 명시적으로 삭제합니다.
JPA 2.0
JPA 2.0에는 orphanRemoval 속성이 도입되었습니다.
@OneToMany(mappedBy="foo", orphanRemoval=true)
orphanRemoval을 true로 설정하면 JPA는 상위 엔터티가 제거될 때 고아 하위 레코드를 자동으로 삭제합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3