본문 바로가기

강의 정리/자바 ORM 표준 JPA10

6. 고급 매핑 1. 상속관계 매핑 패러다임의 불일치 객체 에는 상속관계가 존재 RDB 에는 상속관계 x 상속관계 매핑 객체의 상속을 DB의 슈퍼타입, 서브타입 관계 모델링을 사용하여 매핑 3가지 전략을 사용할 수 있다. 1.1. 조인전략 특징 [INSERT] ALBUM 을 추가한다고 했을 때 ITEM, ALBUM 각 각 한번씩, 하나를 저장할 때 두개의 insert가 발생한다. [SELECT] ALBUM 을 조회한다고 했을 때 ITEM과 ALBUM 테이블을 JOIN 하여 가져와야한다. 어떤거와 JOIN을 할 지 구분해야 하기 때문에 ITEM 에 DTYPE 컬럼이 추가된다. 가장 정규화된 방식 1.2. 단일테이블 전략 특징 하나의 테이블이 모두 넣은 뒤, DTYPE 컬럼을 기반으로 조인을 하여 어떤 데이터가 저장되어있는.. 2020. 12. 29.
5. 다양한 연관관계 매핑 1. 다대일 [N:1] 다(N)가 연관관계 주인인 경우 가장 많이 사용되는 연관관계 @ManyToOne + @JoinColumn 2. 일대다 [1:N] 일(1) 이 연관관계의 주인인 경우 @OneToMany + @JoinColumn (@JoinColumn 이 없으면 조인테이블 방식을 사용하게 된다.) 2.1. 일대다 단방향 객체 관점 아래의 그림을 보면, Team 에서 Member 로 가는 참조가 있다. 테이블 관점 FK 는 어쩔 수 없이 다(N) 쪽에 있다. 일전에 고려했던 넌센스한 문제가 생긴다. Team.members.add(member) 을 하면 Member 테이블에 있는 FK 가 변경된다. Team 객체에 변경을 가했는데, 데이터베이스 관점에서는 Member 테이블이 갱신되는 문제. 추가적으로 .. 2020. 12. 28.
4. 연관관계 매핑 기초 패러다임의 불일치 테이블은 외래키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 1. 양방향 연관관계 단방향 양방향 패러다임의 불일치 테이블은, Foreign Key 한개만 있으면 양쪽으로 모두 조회가 가능하다. 객체는 양쪽에 모두 세팅해줘야 양쪽으로 모두 조회가 가능하다. 2. 연관관계 주인과 mappedBy 객체와 테이블이 관계를 맺는 차이 객체 = 연관관계 2개 = 단방향 연관관계 2개 회원 -> 팀 연관관계 1개 (단방향) 팀 -> 회원 연관관계 1개 (단방향) 테이블 = 연관관계 1개 회원 팀 연관관계 1개만으로, (양방향)을 모두 접근할 수 있음 객체의 양방향 관계는 사실, 서로 다른 단방향 관계 2개이다. 테이블은 하나의 외래키로, 양방향 연관관계를.. 2020. 12. 27.
3. 엔티티 매핑 1. 객체와 테이블 매핑 @Entity JPA 가 관리하는 객체이며, 데이터베이스 테이블과 매핑해서 사용한다. 기본 생성자 필수 (public / protected) final 클래스, enum, interface, inner 클래스 사용은 안된다. 저장할 필드에 final 사용은 안된다. 속성 name JPA에서 사용할 엔티티 이름 default 는 객체 명 @Table 속성 name 데이터베이스 테이블에 대한 이름을 지정한다. uniqueConstraints 유니크 제약조건을 부여한다. 2. 데이터베이스 스키마 자동 생성 옵션 hibernate.hbm2ddl.auto create : 시작 시점에 drop create-drop : 종료 시점에 drop update : 변경 부분만 반영 (컬럼을 추가하는.. 2020. 12. 27.