Programming134 14. 엔티티 간 1-1 단방향 연관 매핑 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 주의사항 연관 매핑은 진짜 필요할 때만 사용할 것 연관된 객체 탐색이 쉽다는 이유로 사용하지 말 것 조회 기능은 별도 모델을 만들어 구현(CQRS) Embeddable 매핑이 가능하다면 Embeddable 매핑 사용할 것 * 참조키 방식 1-1 단방향 연관 매핑 참조키를 이용한 1-1 매핑 관계이다. membership_card테이블은 user_email 칼럼을 이용해서 user테이블을 참조하는 구조다. memeber_ship 카드의 pk(식별자)는 card_no다. 이를 오른쪽처럼 매핑하고 싶을 때, MembershipCard 객체의 owner가 User가 된다. User는 email값을 이용해.. 2023. 3. 27. 13. 엔티티 연관 매핑 시작에 앞서 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 연관 엔티티와 엔티티 간 연결 엔티티가 다른 엔티티를 필드 / 프로퍼티로 참조 MembershipCard 엔티티는 User 엔티티를 필드로 가지고 있다. * 연관 종류 1-1 : 참조키 방식 단 방향, 양 방향 단 방향 : a -> b로만 연관 양 방향 : a b 연관 1-1 : 키 공유 방식 단 방향, 양 방 N-1 : 단 방향 1-N : 콜렉션 단 방향 N-1/1-N : 양 방향 M-N : 단 방향, 양 방향 * 기초 영상에서 다룰 범위 다룰 대상 1-1 연관 단방향 N-1 단방향 1-N 단방향 다루지 않음 양방향 M-N연관 참고 엔티티 간 연관은 거의 사용하지 않음 특히 양방향은 더 없음, .. 2023. 3. 25. 12. 영속 컨텍스트 & 라이프사이클 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 영속 객체와 영속 컨텍스트 영속 엔티티 / 객체 DB 데이터에 매핑되는 메모리 상의 객체 @Entity 애너테이션을 사용한 클래스를 이용해 생성한 객체 영속 컨텍스트에 보관된 객체가 영속 객체가 된다. 영속 컨텍스트 일종의 메모리 저장소 Enitity Manager가 관리할 엔티티 객체를 보관하는 장소 (Entity Type, 식별자)를 key로, 엔티티 객체를 value로 하는 일종의 맵 형태로 저장 EntityManager.close() 영속 컨텍스트 제거 배치처리 X * 영속 컨텍스트와 캐시 동일 식별자 -> 동일 객체 영속 컨텍스트에 보관된 객체 조회 Repeatable Read 효과 특정.. 2023. 3. 23. 11. 값 콜렉션 주의사항 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 목록 조회 값 콜렉션을 eager 하게 fetch한 엔티티를 페이징 처리해서 읽어온다고 해보자. 예를 들어, Role 엔티티에 eager 하게 fetch한 role_perm은 원래는 한 번에 같이 넘어와야 한다. 그러나 일반적인 JPQL을 실행하면, 먼저 role 엔티티들을 가져와 List에 담고, 다시 List를 돌면서 role_perm을 가져온다. 즉, 반복이 2번 일어나게 된다. 이를 해결하기 위해 join fetch 를 사용하면, role을 읽어올 때 role과 role_perm을 join해서 데이터를 읽어온다. 그러나 이 때는 페이징 처리를 했음에도 limit을 걸지않고 일단 두 테이블을.. 2023. 3. 22. 10. 값 콜렉션 Map 매핑 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 단순 값을 Map으로 보관하는 모델 doc_prop 테이블은 map에 해당하는 테이블이다. name이 key, value가 value로 저장된다. Document의 props에 매핑된다. * 단순 값 Map 매핑 Document 클래스에서 확인할 수 있다. 기본적인 방법은 Set, List와 동일한다. @MapKeyColumn 애너테이션을 사용한다는 차이가 있다. 해당 애너테이션은 key값으로 쓰일 칼럼을 지정한다. * 저장 여러 값을 보유한 Map을 이용해 props 맵을 만들고 해당 props를 인자로 넘겨준 Document 객체를 생성하고 persist()를 해보자. 기본적으로 doc 테이블.. 2023. 3. 21. 이전 1 ··· 20 21 22 23 24 25 26 27 다음 반응형