본문 바로가기
728x90
반응형

ORM2

[JPA/Java] 프록시(Proxy) 프록시 기초 프록시란? 프록시는 진짜 객체 대신에 가짜 객체로서 진짜를 대신해주는 개념 Hibernate는 지연 로딩을 구현하기 위해 프록시를 사용한다. 프록시를 사용할 때는, EntityManager에서 getReference() 를 사용하여 진짜 객체를 참조하여 가짜 객체를 만든다. 진짜 객체를 호출할 때는 em.find() 를 사용하지만, 가짜 객체는 em.getReference() 를 사용한다. 프록시의 특징은 다음과 같다. 1) 실제 클래스를 상속 받아서 만들어진다. 2) 실제 클래스와 비슷하다. 3) 사용하는 입장에서는 진짜 객체인지, 프록시 객체인지 구분하지 않고 사용해도 된다. Member 클래스를 예제로, 임의로 데이터를 생성하여 인스턴스를 생성하고, 인스턴스를 영속시킨 다음, 객체를 참.. 2023. 2. 27.
[JPA/Java] 고급 매핑 (상속관계 매핑<조인, 단일 테이블>, @MappedSuperclass) 상속관계 매핑 - 관계형 DB는 상속 관계가 아니다. - 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다. - 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 - 각각 테이블로 변환 → 조인 전략 - 통합 테이블로 변환 → 단일 테이블 전략 - 서브타입 테이블로 변환 → 구현 클래스마다 테이블 전략 주요 어노테이션 - @Inheritance(starategy=InhereitanceType.XXX) - JOINED : 조인 전략 - SINGLE_TABLE : 단일 테이블 전략 - TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 - @DiscriminatorColumn(name="DTYPE".. 2023. 2. 21.
728x90
반응형