Free Lines Arrow
본문 바로가기
728x90

DataBase/JPA40

[JPA] mappedBy mappedBy 란? 양방향 연관관계에서 중요한 역할을 한다. 양방향 관계를 위한 맵핑을 해주는 역할을 한다. 양방향 연관관계 예제 다음과 같은 관계가 있다면 어떻게 풀어야 될까? mappedBy를 이해하기 위해선 객체와 테이블이 관계를 맺는 차이를 알아야한다. 객체와 테이블이 관계를 맺는 차이 객체 연관관계(2개의 연관관계가 존재) 회원 -> 팀 관계를 볼때 1개의 연관관계가(단방향) 있다. 팀 -> 회원 관계를 볼때 1개의 연관관계가(단방향) 있다. 테이블 연관관계(1개의 연관관계가 존재) 회원 팀의 연관관계 1개(양방향) FK로 양쪽다 접근이 가능하므로 연관관계는 1개만 있다. 객체의 양방향 관계 객체의 양방향 관계는 서로 다른 단방향 관계 두개이다. A 객체가 B의 객체를 필드로 가지고 있다. B.. 2021. 8. 2.
[JPA] 연관관계 매핑기초3: 양방향 사용시 주의점 양방향 연관관계의 주의점 값 조회 안되는 경우 무한루프에 빠지는 경우 값조회가 안되는 경우 예제설명 양방향 연관관계를 쓸때는 양쪽에 값을 다 넣어 줘야 된다. 앞서예제에서 Member 에도 team이 있고 Team 에도 Members 가 있었다. 여기서 Member에만 team을 넣어 주고 Team에다가 Member를 넣어주지 않으며 어떻게 될까? 예제로 살펴보자. 예제1 Member 에만 Team을 넣어 주었을때 1. Team을 생성한다. 2. Team을 영속성 컨텍스트에 넣는다. 3. 새로운 회원을 만든다. 4. 회원을 영속성 컨텍스트에 넣는다. 5. 주석처리... 6. flush 를 이용하여 DB에 저장한다. 7. 영속성컨텍스트에 있는 모든 정보를 날린다. 8. 영속성컨텍스트가 비어있기 때문에 DB.. 2021. 8. 2.
[JPA] 연관관계 매핑기초2: 양방향 연관관계 양방향 연관관계란? 단방향 관계가 두개이다 이걸 양방향이라고 부른다. 외래키가 있는 곳이 양방향 관계의 주인이 된다. 양방향 보다 단방향이 깔끔하다. 객체와 테이블의 연관관계의 차이점. 테이블 멤버에서 소속된 팀을 알고 싶으면 TEAM_ID 로 Join 하면 된다. 팀에서 멤버를 조회할 때도 Join 을 쓰면된다. 객체 멤버에서 팀을 알고 싶으면 맴버객체에서 team의 Id 나 객체를 가져오면 된다. 팀에서 소속된 멤버를 알고 싶으면 해당 부분에서 문제가 발생한다. 단방향 맵핑의 문제점 객체 기준으로 봤을때 단방향에서는 Memeber 에서 Team으로 갈수는 있는데 Team 에서 Member를 가는 방법이 없었다. Team 객체에서 소속된 멤버를 보려면 코드가 복잡해 졌다. 양방향 맵핑 단방향의 단점을 .. 2021. 8. 2.
[JPA] 연관관계 매핑기초1: 단방향 연관관계 단방향 연관관계 단방향 연관관계를 알아본다. 객체와 테이블 연관관계의 차이를 이해. 객체의 참조와 테이블의 외래 키를 매핑 용어 방향(Direction): 단방향, 양방향 존재 다중성(Multiplicity): N:1, 1:N, !:1, N:M 이해 연관관계 주인(Owner): 객체 양방향 연관관계는 관리 주인이 필요하다. 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속된다. 회원과 팀의 N:1 관계다. 객체와 테이블 연관관계 ERD 그림 처럼 객체와 테이블의 연관관계를 만들어 주어야한다. 멤버와 팀은 N:1 관계 이고 멤버는 TEAM_ID 를 FK 로 사용하고 있다. 아래처럼 멤버만 팀을 참조 한방향으로만 참조하기 때문에 단방향이라고 한다. 데이터 중심의 모델링 연관관계 매핑 없이 데이터 .. 2021. 8. 1.
728x90
반응형