Java-Spring

자바 / 스프링 / 스프링부트 스터디 정리
Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 고급 매핑 - 실전 예제

상속 관계 매핑 요구사항 추가 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장할 수 있음 모든 데이터는 등록일과 수정일이 있어야 함 ERD 분석 엔티티를 상속 관계로 만들고 공통 속성은 Item 엔티티에 둔 후, Album, Book, Movie 자식 엔티티를 추가 상속 관계를 테이블 하나에 통합하는 단일 테이블 전략을 선택했으므로 ITEM 테이블 하나만 사용하고 DTYPE이라는 컬럼으로 자식 상품을 구분 상속 관계 매핑 item이라는 패키지를 만들어서 상품(Item)과 상품의 자식 클래스(Album, Book, Movie)들을 모아둔 후, 상품 클래스는 직접 사용하지 않으므로 abstract를 추가해서 추상 클래스를 만듦 // 부모 엔티티 상품 (Item) package jpabook.model..

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 고급 매핑

상속 관계 매핑ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현하는 3가지 방법1) 각각의 테이블로 변환 (조인 전략) : 각각을 모두 테이블로 만들고 조회할 때 조인을 사용2) 통합 테이블로 변환 (단일 테이블 전략) : 테이블을 하나만 사용해서 통합3) 서브타입 테이블로 변환 (구현 클래스마다 테이블 전략) : 서브 타입마다 하나의 테이블을 생성조인 전략엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략조회할 때 조인을 자주 사용객체는 타입으로 구분할 수 있지만 테이블은 타입의 개념이 없으므로 타입을 구분하는 컬럼..

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 다양한 연관관계 매핑 - 실전 예제

다양한 연관관계 매핑 요구사항 추가 상품을 주문할 때 배송 정보를 입력할 수 있으므로 주문과 배송은 일대일 관계 상품을 카테고리로 구분할 수 있음 ERD 분석 주문과 배송 : 주문과 배송은 일대일 관계, 외래 키는 주문 테이블에 존재 상품과 카테고리 : 한 상품은 여러 카테고리에 속할 수 있고, 한 카테고리도 여러 상품을 가지므로 다대다 관계이지만, 다대다 관계를 표현하기 어려우므로 CATEGORY_ITEM 연결 테이블을 추가해서 일대다, 다대다 관계로 풀어냄 일대일 매핑 주문과 배송의 관계 Order와 Delivery는 일대일 관계 @Entity @Table(name = "ORDERS") public class Order { // 주문 엔티티 @Id @GeneratedValue @Column(name ..

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 다양한 연관관계 매핑

다양한 연관관계 매핑엔티티의 연관관계를 매핑할 때는 3가지를 고려다중성다대일(@ManyToOne), 일대다(@OneToMany), 일대일(@OneToOne), 다대다(@ManyToMany)단방향, 양방향테이블은 외래 키 하나로 조인을 사용해서 양방향으로 쿼리가 가능하므로 사실상 방향이라는 개념이 없음반면에 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있음객체 관계에서 한쪽만 참조하는 단방향 관계, 서로 참조하는 양방향 관계연관관계의 주인데이터베이스는 외래 키 하나로 두 테이블이 연관관계를 맺으므로 연관관계를 관리하는 포인트는 외래 키 하나반면 객체는 엔티티를 양방향으로 매핑하면 2곳에서 서로를 참조하므로 객체의 연관관계를 관리하는 포인트는 둘JPA는 두 객체 연관관계 중 하나를 정해..

Java-Spring/etc

[Spring Boot] Jsoup 웹 크롤링과 DB 저장

보호되어 있는 글입니다.

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 기초 - 실전 예제

연관관계 매핑 시작 엔티티 매핑 - 실전 예제에서는 외래 키를 그대로 가져오는 문제가 있었으므로, 엔티티에서 외래 키로 사용한 필드는 제거하고 참조를 사용하도록 변경 즉, 객체 관계를 외래 키를 직접 사용하는 것에서 참조를 사용하도록 변경 일대다, 다대일 연관관계 매핑 @Entity public class Member { // 회원 엔티티 @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String name; private String city; private String street; private String zipcode; // 연관관계의 주인이 아닌 Member.orders에 @mappedBy 선언을 하여 연관관계의..

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 기초

객체의 참조와 테이블의 외래 키 매핑 엔티티들은 대부분 다른 엔티티와 연관관계가 있음 그런데 객체는 참조(주소)를 사용해서 관계를 맺고 테이블은 외래 키를 사용해서 관계를 맺으므로 완전히 다른 특징을 가지므로 객체의 참조와 테이블의 외래 키를 매핑하는 것이 중요 연관관계 방향 : [단방향, 양방행] 한쪽만 참조하는 단방향 관계, 서로 참조하는 양방향 관계 방향은 객체관계에만 존재하고 테이블 관계는 항상 양방향 다중성 : [다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:N)] 여러 회원이 한 팀에 속할 때는 다대일 관계, 한 팀에 여러 회원이 소속될 때는 일대다 관계 연관관계의 주인 : 객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야 함 단방향 연관관계 다대일 단방향 관계 다대일..

Java-Spring/자바 ORM 표준 JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 엔티티 매핑 - 실전 예제

요구사항 분석과 기본 매핑 작은 쇼핑몰을 만들어가면서 JPA로 실제 도메인 모델을 어떻게 구성하고 객체와 테이블을 어떻게 매핑해야 하는지 알아보자 요구사항 분석 핵심 요구사항 회원은 상품을 주문할 수 있다. 주문 시 여러 종류의 상품을 선택할 수 있다. 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 도메인 모델 분석 회원, 주문, 상품, 그리고 주문상품이라는 엔티티가 도출 회원과 주문의 관계 : 회원은 여러 번 주문할 수 있으므로 회원과 주문은 일대다 관계 주문과 상품의 관계 : 주문을 할 때 여러 상품을 함께 선택할 수 있고, 같은 상품도 여러 번 주문될 수 있으므로 다대다 관계 하지만 다대다 관계는 거의 사용하지 않으므로 주..

김깅긍
'Java-Spring' 카테고리의 글 목록 (20 Page)