Java3 JPA 기본 - 프록시와 연관관계 관리 프록시em.findDB를 통해서 실제 엔티티 객체 조회em.getReferenceDB 조회를 미루는 가짜 객체(프록시) 엔티티 객체 조회특징실제 클래스를 상속받아서 만들어진다.실제 클래스와 겉모양이 같다.사용하는 입장에서 이론상으로 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다.프록시 객체는 실제 객체의 참조(target)를 보관프록시 객체를 호출하면 프록시 객체는 실제 객체의 메서드를 호출한다. 프록시 객체는 처음 사용할 때 한번만 초기화프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 변하는게 아님초기화 시, 프록시 객체를 통해서 실제 엔티티로 접근이 가능한 것프록시 객체는 원본 엔티티를 상속받음, 따라서 타입을 체크해야한다.(== 비교가 아닌 instance of를 사용할 것).. 2024. 6. 9. JPA 기본 - 연관관계 매핑 연관관계 매핑 시 고려해야 할 사항1. 다중성2. 단방향, 양방향3. 연관관계의 주인 다중성1. @OneToOne2. @OneToMany3. @ManyToOne4. @ManyToMany (사용하지 않는 것을 권장) 단방향, 양방향DB, 객체 기준으로 나뉘어진다.DB외래 키 하나로 양쪽 조인 가능방향 개념이 아님객체참조용 필드가 있는 쪽으로만 참조 가능한쪽만 참조하면 단방향양쪽이 서로 참조하면 양방향연관관계의 주인테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음객체 양방향 관계는 A -> B, B -> A 처럼 참조가 2군데연관관계의 주인 : 외래 키를 관리하는 참조주인의 반대편 : 외래 키에 영향을 주지 않음, 단순 조회만 가능다대일 단방향가장 많이 사용하는 연관관계다대일의 반대는 일대다 관계이다.다.. 2024. 6. 8. JPA 기본 - 영속성 컨텍스트 JPA의 장점 2가지객체와 관계형 데이터베이스 매핑(ORM)영속성 컨텍스트영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어엔티티를 영구 저장하는 환경사용방법 : em.persist(entity);영속성 컨텍스트는 논리적인 개념눈에 보이지 않음엔티티 매니저를 통해서 영속성 컨텍스트에 접근엔티티의 생명주기비영속영속성 컨텍스트와 전혀 관계가 없는 새로운 상태영속영속성 컨텍스트에 관리되는 상태준영속영속성 컨텍스트에 저장되었다가 분리된 상태영속성 컨텍스트에서 관리하지 않음삭제삭제된 상태영속성 컨텍스트의 이점1차 캐시이용 가능동일성 보장트랜잭션을 지원하는 쓰기지연변경 감지(Dirty Checking)스냅샷과 비교지연 로딩(Lazy Loading)플러시영속성 컨텍스트의 변경내용을 DB에 반영플러시 발생변경감지수정된.. 2024. 6. 5. 이전 1 다음