자바 ORM 표준 JPA 프로그래밍 - 섹션 5~7
·
JPA
섹션 5, 6. 연관관계 매핑연관관계 주인⚠️ 외래 키가 있는 곳을 연관관계의 주인으로 정해라연관관계의 주인이란, 양방향 매핑에서 두 객체 중 외래 키를 누가 관리하는 객체를 말한다. 주인이 아닌 객체는 읽기만 가능하다. 즉, 연관관계의 주인은 단순히 외래 키를 누가 관리하느냐의 문제이기 때문에 비즈니스 상 우위에 있다고 주인으로 설정해서는 안된다. 이때, 일대다 관계에서 외래키는 항상 다(多)쪽에 위치하도록 설계해야 한다.만약, 위와 같은 연관관계가 존재한다고 가정해보자. 이때, Member(多)가 아닌 Team이 연관관계의 주인이 된다면 어떨까? 해당 팀에 소속된 member에 변경이 생기게 된다면 본인의 테이블인 Team이 아닌 다른 테이블 즉, Member 테이블에 Update 쿼리가 나가게 된다..
자바 ORM 표준 JPA 프로그래밍 - 섹션 3~4
·
JPA
섹션 3. 영속성 관리 - 내부 동작 방식엔티티의 생명주기비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태영속 (managed) : 영속성 컨텍스트에 관리되는 상태준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태삭제 (removed) : 삭제된 상태영속성 컨텍스트영속성 컨텍스트란, 서버와 DB 중간에서 객체를 보관하는 세미 DB영속성 컨텍스트는 엔티티 매니저를 통해서 접근할 수 있으며 1차 캐시와 쓰기 지연 SQL 저장소가 존재한다.1차 캐시//엔티티를 생성한 상태(비영속)Member member = new Member();member.setId("member1");member.setUsername("회원1");//엔티티를 영속em.persis..