연관관계
-
연관관계 매핑 기초 - 실전예제김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 19. 13:12
실습 1. 관계도 2. ERD 3. 엔티티 상세 4. 참고사항 1) 테이블의 N:M 관계는 중간 테이블을 이용해서 1:N, N:1 2) 실전에서는 중간 테이블이 단순하지 않다. 3) @ManyToMany는 제약: 필드 추가X, 엔티티 테이블 불일치 4) 실전에서는 @ManyToMany 사용X 5. 코드 @Entity public class Category { @Id @GeneratedValue private Long id; private String name; @ManyToOne @JoinColumn(name = "PARENT_ID") private Category parent; @OneToMany(mappedBy = "parent") private List child = new ArrayList(); ..
-
다양한 연관관계 매핑김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 19. 12:04
연관관계 매핑 시 중요한 3가지 1. 다중성 1) 다대일 - @ManyToOne 2) 일대다 - @OneToMany 3) 일대일 - @OneToOne 4) 다대다 - @ManyToMany 5) 다대일의 반대는 일대다, 일대일의 반대는 일대일, 다대다의 반대는 다대다처럼 대칭을 이룬다. 2. 단방향, 양방향 1) 테이블 - 외래 키 하나로 양쪽 조인 가능 - 사실 방향이라는 개념이 없음 2) 객체 - 참조용 필드가 있는 쪽으로만 참조 가능 - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향 3. 연관관계의 주인 1) 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 2) 객체 양방향 관계는 A->B, B->A 처럼 참조가 2개라 둘 중 테이블의 외래키를 관리할 곳을 지정해야함 4) 연관관계의 주..
-
연관관계 매핑 기초 - 실습김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 8. 15:45
테이블 구조 객체 구조 코드 @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; private int age; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; @OneToMany @JoinColumn(name = "member") private List orders = new ArrayList(); Getter(), Setter() ... } @Entity @Table(name = "ORDERS") public class Order { @Id @..
-
연관관계 매핑 기초 - 양방향 연관관계김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 7. 15:30
객체와 테이블이 관계를 맺는 관계 1. 양방향 객체 연관관계 1) 객체의 양방향 관계는 사실 양방향 관계가 아니라 서로 다른 단 뱡향 관계 2개다. 2) 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어 야 한다. - A -> B (a.getB()) - B -> A (b.getA()) class A { B b; } class B { A a; } 2. 테이블 연관관계 1) 테이블은 외래 키 하나로 두 테이블의 연관관계를 관리 2) MEMBER.TEAM_ID 외래 키 하나로 양방향 연관관계 가짐 (양쪽으로 조인할 수 있다.) - 아래와 테이블 관계처럼 둘중 하나로 왜래 키를 관리해야 한다. SELECT * FROM MEMBER M JOIN TEAM T ON M.TEAM_ID = T.TEAM_ID S..
-
연관관계 매핑 기초 - 단방향 연관관계김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 7. 13:19
연관관계를 왜 만드는가? 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. – 조영호(객체지향의 사실과 오해) 예상 시나리오 1) 회원과 팀이 있다. 2) 회원은 하나의 팀에만 소속될 수 있다. 3) 회원과 팀은 다대일 관계다. 연관관계 없는 객체 모델링 1. 연관관계(연관관계 없음) 2. 특징 1) 객체를 테이블에 맞추어 모델링을 해야 한다. - 참조 대신에 외래 키를 그대로 사용 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; Getter()..