💻dev

지난 글: https://un-lazy-midnight.tistory.com/96 JPA | 예제로 알아보는 연관관계 매핑 (예제-3) 예제 코드) https://un-lazy-midnight.tistory.com/94 JPA | 예제로 알아보는 연관관계 매핑 (예제-2) 지난 글: https://un-lazy-midnight.tistory.com/91 JPA | 요구사항 분석과 기본 매핑 (예제-1) https://un-lazy-midnight.tistory.co un-lazy-midnight.tistory.com 지난 예제에 이어서 상속관계 매핑을 적용해 보려고 한다. 요구사항 추가 상품의 종류는 음반,도서,영화가 있고 이후 더 확장될 수 있다. 모든 데이터는 등록일과 수정일이 필수다. 도메인 모델,..
상속관계 매핑이란? 관계형 데이터베이스는 상속 관계가 없다. 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다 그래서 상속관계 매핑이란 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) JOINED: 조인 전략 SINGLE_TABLE: 단일 테이블 전략 TABLE_PER_CLASS: 구현 클래스마다 테이블 전략 @DiscriminatorColumn(name="DTYPE") 하위 클래스를 구분하기 위한 용도의 컬럼이다. @DiscriminatorValue("XXX") 하위 클래스를 구분하기 위한 용도의 값을 직접 지정할 때 사용한다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 ..
예제 코드) https://un-lazy-midnight.tistory.com/94 JPA | 예제로 알아보는 연관관계 매핑 (예제-2) 지난 글: https://un-lazy-midnight.tistory.com/91 JPA | 요구사항 분석과 기본 매핑 (예제-1) https://un-lazy-midnight.tistory.com/90 JPA | 필드와 컬럼 매핑, 기본 키 매핑 필드 - 컬럼 매핑 아래와 같은 요구사항이 주 un-lazy-midnight.tistory.com 지난 예제에 배송, 카테고리를 추가하려고 한다. 주문과 배송은 1:1 상품과 카테고리는 N:M ERD와 엔티티 상세를 다음과 같이 변경한다. //Category @Entity public class Category { @Id @..
다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany -> 다대다는 실무에서 쓰면 안된다! 방향 테이블 외래 키 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키를 관리할 곳을 지정해야 함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음. 단순 조회만. 다대일[N:1] 단방향: 가장 많이 사용하는 연관관계, 반..
지난 글: https://un-lazy-midnight.tistory.com/91 JPA | 요구사항 분석과 기본 매핑 (예제-1) https://un-lazy-midnight.tistory.com/90 JPA | 필드와 컬럼 매핑, 기본 키 매핑 필드 - 컬럼 매핑 아래와 같은 요구사항이 주어진다고 가정해보자. 1. 회원은 일반회원/관리자로 구분 2. 회원 가입일과 수정일 un-lazy-midnight.tistory.com 이번에는 지난 글에 이어서 예제를 통해 연관관계 매핑을 실습해보자. 테이블 구조 지난번과 동일하다. 객체구조 참조를 사용하도록 변경한다. MEMBER (1) : ORDER (N) 일대다 ORDER (1) : ORDERITEM (N) 일대다 ITEM (1) : ORDERITEM (N)..
흔히 C언어에 포인터가 있다면 JPA에는 mappedBy가 있다고들 한다. 이 글에서는 예제를 통해 양방향 연관관계와 mappedBy를 알아보자. 지난 글에서 단방향 연관관계를 가졌던 객체를 양방향으로 매핑해본다. 양방향으로 매핑된 객체의 구조는 다음과 같다.코드 역시 아래와 같이 변경한다.팀@Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team") List members = new ArrayList();회원public class Member { @Id @GeneratedValue private Long id; @Column(name="USERNAME") p..
들어가기전에...용어 설명 방향: 단방향, 양방향 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 연관관계의 주인: 객체 양방향 연관관계는 관리 주인이 필요 이 글에서는 간단히 회원-팀 예제를 통해 연관관계의 기초를 이해해보자. 예제 시나리오는 다음과 같다. 1. 회원과 팀이 있음 2. 회원은 하나의 팀에만 소속. 3. 회원과 팀은 다대일 관계. 일단 연관관계가 없는 객체를 먼저 알아보자. 테이블에 맞춰 객체를 아래와 같이 모델링 하였다. @Entity public class Member { @Id @GeneratedValue @Column(name="MEMBER_ID") private Long id; @Column(name="USERNAME") private String ..
https://un-lazy-midnight.tistory.com/90 JPA | 필드와 컬럼 매핑, 기본 키 매핑 필드 - 컬럼 매핑 아래와 같은 요구사항이 주어진다고 가정해보자. 1. 회원은 일반회원/관리자로 구분 2. 회원 가입일과 수정일이 존재 3. 회원을 설명하는 필드가 있고 이 필드는 길이 제한이 없 un-lazy-midnight.tistory.com 이번 글에서는 지난 글의 기본 매핑을 실전 예제를 통해 알아본다. 요구사항 분석 회원은 상품을 주문할 수 있음 주문 시 여러 종류의 상품을 선택할 수 있음 도메인 모델 분석 회원-주문 관계: 회원은 여러 번 주문할 수 있음(일대다) 주문-상품 관계: 주문할 때 여러 상품을 선택할 수 있음. 반대로 상품도 여러 번 주문될 수 있음. 주문상품이라는 ..
쁜새
'💻dev' 카테고리의 글 목록 (12 Page)