✍🏻study/📒 jpa

    영속성 관리

    이 글은 김영한님의 "자바 ORM 표준 JPA 프로그래밍" 3장 영속성 관리 부분을 읽고 정리한 포스트입니다!! 영속성 컨텍스트란❓ 엔티티를 영구 저장하는 환경이다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 엔티티의 상태 비영속: 영속성 컨텍스트와 전혀 관계가 없는 상태 영속: 영속성 컨텍스트에 저장된 상태 준영속: 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제: 삭제된 상태. 여기서 영속 상태라는 것은 "영속성 컨텍스트"에 의해 "관리"되는 엔티티라는 것이다. 영속성 컨텍스트 특징 1. 영속성 컨텍스트는 식별자 값(@Id로 테이블의 기본 키와 매핑한 값)을 가져야 한다. - 영속성 컨텍스트는 엔티티를 식별자 값으로 구분하기 때문에, 반..

    JPA N+1 문제

    N+1 문제에 대해서 생각없이 구현을 진행하다가, 친구와 얘기하다가 내가 구현한 부분에서 N+1문제가 일어날 거 같다는 말을 듣고, N+1 문제에 대해서 다시 공부하고, 정리를 해보려고 한다. Review라는 엔티티가 있다. @Builder @AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Entity public class Review extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZ..

    연관 관계 편의 메소드❓

    연관 관계 편의 메서드라는 말을 공부할 때, 들었고, 김영한님이 이거 실수 하는 사람들 많다고 말씀하셔서, 나는 안 그러겠지라고 했는데, 그랬다,,,이제 실수를 하지 않기 위해서 정리를 하자,,,!!! 연관 관계 편의 메서드를 알아보기 전 연관 관계부터 알아보자!! 연관 관계란❓ 내가 사용하는 JPA는 관계형 DB(MySQL, Oracle, etc)에 대해서 지원을 한다. 관계형 데이터베이스는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 전산정보 데이터베이스이다. ORM은 Object Relation Mapping 즉, 객체와 관계형 데이터 베이스간의 매핑이라고 말할 수 있다. 위에 관계형 데이터베이스 설명처럼 각 테이블에 관계가 있다. 테이블에서는 왜리키를 통해서 관계를 ..