본문 바로가기

JPA/JPA원리22

22. 값타입 - 기본값 타입, 임베디드 타입, 불변객체, 값타입 컬렉션 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C JPA는 엔티티 타입과 기본값 타입으로 데이터 타입을 분류할 수 있습니다. 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키, 나이 값을 변경해도 식별자로 인식가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 또한 값타입은 다시 아래와 같이 나눌 수 있습니다. 값 타입 분류 기본값 타입 : 1. 자바 기본 타입(i.. 2021. 7. 17.
21. 실전예제 적용해보기 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 글로벌 페치 전략 설정 모든 연관관계를 지연 로딩으로 @ManyToOne, @OneToOne은 기본이 즉시 로딩이므로 지연 로딩으로 변경 1. 먼저 모든 @ManyToOne과 @OneToOne에 fetch=FetchType.LAZY로 수정한다. 2. Order의 영속성 전이를 수정한다. 2021. 7. 16.
20. 영속성 전이 : CASCADE, 고아객체 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 영속성 전이 : CASCADE 영속성 전이란 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 예: 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장. 아래처럼 Parent와 Child 엔티티를 작성합니다. Parent Child 맨 위의 표와 같이 Parent : Child 는 1:N 관계입니다. 아래 코드 처럼 child를 2개 작성하고 하나의 parent의 자식으로 만든 뒤, 생성한 3개의 객체(parent, child1, child2)를 persist하기 위해서는 총 3번의 persist가 필.. 2021. 7. 16.
19. 지연로딩 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 즉시로딩과 지연로딩 프록시 포스팅에서 했던 질문입니다. 단순히 member 정보만 사용하는 비즈니스 로직일때 Member를 조회할 때 Team도 함께 조회해야 할까? println(member.getName()); // 이렇게 member의 name만 필요한 경우 team까지 조회하는 것은 비효율적 프록시를 먼저 학습한 이유가 있는데, 지연로딩 LAZY를 사용해서 조회한다면 위와 같은 문제를 해결할 수 있습니다. 그런데 지연로딩에는 프록시가 적용됩니다. 지연로딩 LAZY 다음과 같이 Member엔티티의 @ManyToOne을 다음과 같이.. 2021. 7. 16.