2023/12/28 2

[자바 ORM 표준 JPA 프로그래밍] 8. 프록시와 연관관계 관리

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 프록시엔티티를 조회할 때, 연관된 엔티티를 항상 사용하는 것은 아닙니다.모든 연관관계를 한꺼번에 가져오게 될 경우, 성능이 떨어질 수 있습니다. 프록시항목설명목적연관 엔티티를 실제 사용할 때까지 DB 조회를 지연(Lazy Loading)프록시 객체실제 클래스를 상속받아 만들어진 가짜 객체실제 객체의 참조를 보관- 프록시 객체의 메소드를 호출하면 실제 객체의 메소드를 호출 (데이터베이스 조회 지연 목적)초기화영속성 컨텍스트에 의해 초기화됨한 번만 초기화되고 재사용됨내부에 실제 객체(target) 참조식별자 활용프록시는 식별자(ID)만 저장된 상태로 생성됨식별자 접근은 초기화 없이 가능ex) 상세 정보가 필요 없는 경우 I..

[자바 ORM 표준 JPA 프로그래밍] 7. 고급 매핑

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 상속 관계 매핑데이터베이스의 슈퍼타입-서브타입 논리를 테이블로 구현 전략특징Joined StrategySingle Table StrategyTable Per Class Strategy테이블 구조부모와 자식 클래스 각각의 테이블모든 엔티티를 하나의 테이블에 저장자식 클래스마다 별도의 테이블을 생성쿼리 속도느림 (조인 필요)빠름 (조인 불필요)느림 (조인 필요)정규화✅ (테이블 정규화)❌ (모든 컬럼이 하나의 테이블에 포함)✅ (자식 테이블별로 별도 관리)테이블 크기작음큼중간컬럼 제약외래키로 관리자식 클래스마다 DTYPE 컬럼 사용모든 컬럼 nullable각 자식 테이블마다 not null 제약 가능외래키 제약✅ ❌❌ 어노..