JPA 5

Chapter 10. 객체지향 쿼리 언어1 - 기본 문법

10.0 intro JPA가 지원하는 다양한 쿼리 방법 JPQL(Java Persistence Query Language) JPA Criteria(객체 지향 쿼리 빌더): Java 코드를 짜서 JPQL을 빌드해주는 모음 (JPQL의 작성을 도와주는 빌더 클래스이다.) 기본으로 JPQL을 쓰고 안 되는 경우에 네이티브 SQL 사용 QueryDSL 네이티브 SQL 쿼리를 Java 코드로 작성할 수 있도록 도와주는 기술이다. JDBC API 직접 사용, MyBatis, SpringJdbcTemplate을 함께 쓴다. JPQL - 객체 지향 SQL 가장 단순한 조회 방법 EntityManager.find() 객체 그래프 탐색(a.getB().getC()) JPA를 사용하면 엔티티 중심으로 개발한다. 문제는 검색..

Chapter 07. 고급 매핑

7.1 상속 관계 매핑 상속 관계 매핑 - @Inheritance(strategy=infheritanceType.XXX) 관계형 데이터베이스는 상속 관계 매핑이 없다. 그마나 "슈퍼타입 서브타입 관계"라는 모델링 기법이 객체 상속과 가장 유사한다. 상속 관계 매핑: 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 슈퍼 타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 조인 전략(JOINED): 각각 테이블로 변환 ITEM 이라는 테이블을 만들고 데이터를 같이 가져올 때 조인으로 구성한다. (조인 전략은 비즈니스적으로 중요하고 복잡할 때 쓰면 좋다.) ex) 앨범 데이터를 추가하면 앨범의 이름, 가격은 ITEM에 들어간다. 아티스트 정보는 앨범 테이블에 들어간다. INSERT..

Chapter 05. 연관 관계 매핑 기초

5.1 단방향 연관 관계 연관 관계가 필요한 이유 연관 관계가 없으면 계속해서 객체를 끄집어내서 조회해야한다. => 객체 지향의 성격과 동떨어진다. Ex) jpa-basic 프로젝트의 멤버 클래스 package hellojpa; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name= "USERNAME") // DB에 넣고 싶은 값 private String userName; /..

Chapter 02. JPA 시작하기

2.1 프로젝트 생성 H2 데이터베이스 설치와 실행 H2는 웹 용 Query tool을 제공하는 가벼운 실습용 데이터 베이스이다. 시퀀스, auto increment 기능 지원 데이터베이스 시뮬레이션 기능이 있다. H2 데이터베이스를 설치한다. https://www.h2database.com/html/main.html maven 프로젝트 생성 maven - 라이브러리 자동 다운로드 및 의존성 관리 아까 사이트에서 다운받은 2.1.214 버전과 같은 드라이버를 사용해야한다. 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 2.1.214 JPA 설정 - persisten..

Chapter 01. JPA 소개

1.1 SQL 중심적인 개발의 문제점 문제점 관계형 데이터베이스를 쓰면서 SQL에 의존적인 개발을 피하기 어렵다. 패러다임의 불일치 객체(속성과 기능을 캡슐화해서 쓰는 게 목표) vs 관계형 데이터베이스(데이터 정교화 및 보관) 객체를 영구 보관하는 다양한 저장소 RDB - 관계형 데이터베이스 NoSQL - 비관계형 데이터베이스 File ODB 객체와 관계형 데이터베이스의 차이 객체 - RDB 상속 - Table 슈퍼타입 서브타입 관계 연관 관계: 객체는 참조 사용(ex. get) - 테이블은 외래 키 사용 (pk - fk 조인) 객체는 단방향, 테이블은 양방향 조회 가능하다. 데이터 타입 데이터 식별 방법 1.2 JPA (Java Persistence API)소개 JPA(Java Persiatence ..