Java ORM 표준 JPA 프로그래밍 -김영한

데이터베이스의 CASACDE 속성


CASCADE 속성이란?

FOREGIN KEY

영속성 전이


특정 엔티티를 영속 상태로 만들 때, 연관된 엔티티도 함께 영속상태로 만들고 싶으면 영속성 전이(transitive persistence) 기능을 사용하면 된다.

CascadeType 에는 다음과 같은 옵션이 있다.

public enum CascadeType {
		ALL, //모두 적용
		PERSIST, //영속화 전이
		MERGE, //병합
		REMOVE, //영속전이: 삭제
		REFRESH, //REFRESH
		DETACH //DETACH
}

다음과 같이 혼합해서도 사용할 수 있다.

cascade = {CascadeType.PERSIST, CascadeType.REMOVE}

CascadeType.PERSIST , CascadeType.REMOVE는 em.persist(), em.remove()를 실행할 때 바로 전이가 발생하지 않고, 플러시를 호출할 때 전이가 발생한다.