본문 바로가기

일대다2

[JPA] 일대다 조인할때 영속성 컨텍스트 내부 모습 & distinct 엔티티와 데이터베이스를 매핑을 아래와 같이 한다. @Entity class User{ ... @ManyToOne(fetch = FetchType.LAZY ) private Team team; ... } @Entity class Team{ @OneToMany(mappedBy = "team") // 기본적으로 LAZY private List users = new ArrayList(); ... } 데이터 베이스는 미리 데이터를 인서트 해놓았다. 팀을 기준으로 유저들을 join 하면 재밌는 일이 발생한다. 즉 아래와 같은 코드가 있을때 출력을 생각해보자. List teams = em.createQuery("select t from Team t join fetch t.users").getResultList(); .. 2020. 8. 6.
[JPA] @ManyToOne , @OneToMany, @JoinColumn 데이터 베이스공부를 하다보면 조인이라는 개념을 배운다. 우리가 아는 가장 기본적인 조인은 두개의 테이블의 공통적인 요소를 끌고 오는 것이다. 예를 들어 과일상자테이블과 과일들의 테이블이 있다고 하자. 과일상자 기본키 과일상자 이름 1 상자1 2 상자2 과일의 기본키 과일상자의 기본키(왜래키) 과일 이름 3 1 사과 4 1 포도 5 1 배 6 2 오렌지 7 2 바나나 과일상자와 과일의 관계는 OneToMany이다. 두개의 테이블을 조인하면 어떻게 될까? 과일상자를 왼쪽으로 두고 left join을 했다고 가정하자. 과일상자 기본키 과일상자 이름 과일의 기본키 과일 이름 1 상자1 3 사과 1 상자1 4 포도 1 상자1 5 배 2 상자2 6 오렌지 2 상자2 7 바나나 이렇게 해서 "상자1" 과 "상자2" .. 2020. 8. 6.