전체 글46 프록시와 연관관계 관리 프록시 기초 em.find() 와 em.getReference() em.find 의 경우 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference 의 경우 데이터베이스 조회를 미루는 가짜 프록시 엔티티 객체 조회 사용하는 시점에 실제 쿼리를 요청함 프록시 특징 (1) 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같다. 사용하는 입장에서는 이론상 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다. 프록시 객체는 실제 객체의 참조(Target) 를 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 프록시 객체의 초기화 실제 엔티티 정보 조회 요청 초기화 요청 → 영속성 컨텍스트 영속성 컨텍스트를 통하여 DB 조회 실제 Entity 생성 해당 Enti.. 2021. 1. 20. 값 타입 JPA 의 데이터 타입 분류 엔티티 타입 @Entity 로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으로 변경 시 추적 불가 값 타입 분류 기본값 타입 자바 Primitive 타입 래퍼 클래스 String 기본값 타입의 경우 생명주기를 엔티티에 의존한다. (회원 삭제하면 이름, 나이 필드도 함께 삭제) 값 타입의 경우 서로 다른 엔티티와 공유하면 안된다. (회원 이름이 바뀌었다고 다른 회원의 이름도 함께 변경되면 안된다.) ※ 참고 - 자바의 기본 타입은 절대 공유 되지 않는다. int, double 과 같은 primiti.. 2021. 1. 19. 상속 관계 매핑 객체엔 상속 관계가 있지만 관계형 데이터베이스는 상속 관계는 따로 없다. 다만, 슈터타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다. 여기서 상속관계 매핑이란, 객체의 상속의 구조와 DB 의 슈퍼타입 서브타입 관계를 매핑 주요 전략 - 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 조인 전략 단일 테이블 전략 구현 클래스마다 테이블 전략 위와 같은 3가지 전략 모두 JPA 와 매핑 가능하다. 조인 전략 가장 정규화된 방식 운영 시 어떤 데이터인지 확인하기 위하여 DTYPE 을 넣어주는게 좋다. - @DiscriminatorColumn(부모), @DiscriminatorValue(자식) 단일 테이블 전략에선 DTYPE 반드시 넣어줘야 한다. 장점 테이블 정규화 외래키 참조 무결성.. 2021. 1. 14. 이전 1 ··· 6 7 8 9 10 11 12 ··· 16 다음