내배캠 TIL 53일차

오병택·2025년 5월 1일

내배캠

목록 보기
68/73

한줄 요약

JPA 심화 강의 완강, 헷갈리는 개념 정리

JPA 개념

변경감지

@Transactional을 붙였을 때 트랜잭션이 시작 되고 find나 save를 하면 가져오거나
저장하면서 1차 캐시에 저장되는데 거기서 만약 가져온 데이터나 세이브한 데이터를 set메서드로 변경을 하게 되면 1차캐시의 스냅샷을 보고 어? 달라졌네 하고 영속성 컨텍스트가 자동으로 커밋할 때 update 쿼리를 날려줌

cascade

연관된 엔티티에 작업을 전파

ex) 부모 1에 자식 N의 관계일 때 cascade를 설정해주면 부모가 저장될 때 자식도
저장되고 부모가 삭제될 때 자식도 함께 삭제

orphanremoval

참조가 끊어진 엔티티 자동 삭제

ex) 위와 같은 관계일 때 부모에서 자식을 삭제하게 되면 DB에서도 삭제됨

✅주의할 점: 생명주기가 같은 관계에서만 사용하기, 성능과 순환 참조도 고려

주테이블과 관계의 주인은 다름.
주테이블 : 도메인에서 중심이 되는 테이블
관계의 주인 : 외래키를 관리하는 엔티티


@Builder

객체 생성 패턴 중 Builder 패턴을 자동으로 구현해주는 기능

특징
1. 불변 객체 생성 지원
2. 기본값 설정 기능 (@Builder.Default)
3. 부분적 생성 지원

장점
1. 가독성 향상
2. 필드 추가/변경에 유연


내일 좀 더 알아볼 부분

1:N인 경우, N:N 일 때 코드로 어떻게 사용하는 지
JWT, ENUM으로 예외처리, 인증된 사용자를 사용자 정의 어노테이션으로 다루기 등등

느낀 점

심화 강의를 들었긴 했지만 음.. 이해가..
천천히 다시 해보자 컨디션 관리 잘하면서.

profile
걱정하지 말고 일단 해봐!

0개의 댓글