11월 27일 수요일
AM 알고리즘 풀이
PM 강의 수강, 과제 수행
💡 Today Issue
🤔 나의 생각 + 배운 것
영속성 전이(Casecade)
단순히 Entity를 저장, 삭제할 때 연관된 Entity에도 동일한 작업을 적용한다.
단일 Entity에 완전히 종속적인 경우 생명주기가 같다면 사용한다.
블로그 글의 댓글 or 상품의 상품 이미지
Casecade = Cascade.Type.ALL
- ALL : 모두적용
- PERSIST : 영속
- REMOVE : 삭제
- MERGE
- REFRESH
- DETACH
고아 객체
부모 엔티티와 연관관계가 끊어진 자식 Entity를 자동으로 삭제
orphanRemoval = true / default : true
트랜잭션 전파
트랜잭션

위 사진은 트랜잭션의 상태이다.
트랜잭션 전파란 한 트랜잭션이 다른 트랜잭션 내에서 어떻게 동작할지 결정하는 규칙
트랜잭션 간의 우선순위를 정하는 것 같다.
REQUIRED
- REQUIRED는 스프링이 제공하는 기본적인(DEFAULT) 전파 속성으로, 기본적으로 2개의 논리 트랜잭션을 묶어 1개의 물리 트랜잭션을 사용하는 것이다. 앞선 예시로 살펴본 경우가 REQUIRED에 해당하며, 내부 트랜잭션은 기존에 존재하는 외부 트랜잭션에 참여하게 된다.

REQUIRES_NEW
- REQUIRES_NEW는 외부 트랜잭션과 내부 트랜잭션을 완전히 분리하는 전파 속성이다. 그래서 2개의 물리 트랜잭션이 사용되며, 각각 트랜잭션 별로 커밋과 롤백이 수행된다. 이를 그림을 표현하면 다음과 같다.

트랜잭션 전파 속성

🕐회고
열심히 하자