ORM4 [Java] JPA 강의 - 7 (고급 매핑) 상속관계 매핑 조인 전략 @DiscriminatorColumn(name = "DTYPE") -> 엔티티명이 들어감 @DiscriminatorValue("XXX") 두번의 INSERT 장점 - 테이블 정규화 - 외래키 참조 무결성 제약조건 활용 가능 - 저장공간 효율화 단점 - 조회 시 조인을 많이 사용, 성능 저하 - 조회 쿼리가 복잡함 - 데이터 저장시 INSERT SQL 2번 호출 단일 테이블 전략 @DiscriminatorColumn 쓰지 않아도 DTYPE이 생성됨 하나의 테이블에 다 넣고 DTYPE으로 구분함 장점 - 조인이 필요 없으므로 일반적으로 조회 성능이 빠름 - 조회 쿼리가 단순함 단점 - 자식 엔티티가 매핑한 컬럼은 모두 null 허용 -> 데이터 무결성 애매함 - 단일 테이블에 모든 .. 2024. 2. 5. [Java] JPA 강의 - 5 (연관관계 매핑 기초) 단반향 연관관계 @ManyToOne - 다대일 매핑 - FK가 있는 쪽이 항상 N ('다'가 됨) @JoinColumn(name = "XXX_ID") - 외래키로 사용할 컬럼과 그 컬럼의 이름 지정 양방향 연관관계와 연관관계의 주인 양방향 매핑 - 외래키가 있으면 서로의 연관을 알 수 있음 - mappedBy 어떤 것과 mapping 되어 있는가? 객체와 테이블이 관계를 맺는 차이 객체와 연관관계 = 2개 - 단방향 연관관계가 2개 있는 것임 테이블 연관관계 = 1개 - FK 하나로 연관관계가 끝이 남 둘의 차이점을 이해해야 함 객체의 양방향 관계 객체의 양방향 관계는 사실 양방향 관계가 아닌 서로 다른 단방향 관계 2개임 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 함 테이블의 양방향 .. 2024. 1. 18. [Java] JPA 강의 - 4 (엔티티 매핑) 객체와 테이블 매핑 @Entity - JPA가 관리하는 엔티티 - 기본 생성자 필수 - 저장할 필드에 final 사용하면 안됨 - 속성 : name -> JPA에서 사용할 엔티티 이름을 지정 @Table 속성 - name : 매핑할 테이블 이름 - catalog : 데이터베이스 catalog 매핑 - schema : 데이터베이스 스키마 매핑 - uniqueConstraints : DDL 생성 시 유니크 제약 조건 생성 데이터베이스 스키마 자동 생성 - DDL을 애플리케이션 실행 시점에 자동 생성 (ex. Insert into) - 생성된 DDL은 개발 장비에서만 사용 (운영서버에서 사용X) 속성 - create : DROP + CREATE 기존 테이블 삭제 후 다시 생성 - create-drop : 종료.. 2024. 1. 17. [Java] JPA 강의 - 1, 2 (JPA 소개) 예전에 실무를 하게 되면서 JPA 강의를 듣게 되었는데 기억이 안나는 부분도 있고, 복습을 하고 싶어서 다시 학습을 시작했다. 나는 Inflearn에서 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의로 학습했다. 강의를 들으면서 핵심 내용이나 내가 기록하고 싶은 내용 위주로 정리를 해보려고 한다. 1. JPA란? - Java Persistence API - 자바 진영의 ORM 기술 표준 2. ORM이란? - 객체 관계 매핑 (Object-relational mapping) - 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스대로 설계 3. JPA를 사용해야 하는 이유 - SQL 중심적 개발에서 객체 중심으로 개발하기 위함 - 생산성 : CRUD(저장, 조회, 수정, 삭제)가 편리함 .. 2024. 1. 11. 이전 1 다음