JPA 소개JPA 시작하기영속성 관리 - 내부 동작 방식엔티티 매핑연관관계 매핑 기초다양한 연관관계 매핑고급 매핑프록시와 연관관계 관리값 타입객체지향 쿼리 언어1 - 기본 문법객체지향 쿼리 언어2 - 중급 문법자바 ORM 표준 JPA 프로그래밍 기본편 - 김영한, 인프
JPA 소개 기존 SQL 중심의 개발 문제점 객체를 테이블에 맞추어 모델링
H2 Database 설치 및 실행Maven 프로젝트 생성pom.xml : JPA 하이버네이트, H2 데이터베이스 라이브러리 추가persistence.xml : JPA 설정 파일/META-INF/ 에 위치persistence-unit name : 이름 지정javax.p
엔티티를 영구 저장하는 환경 (persistenceContext)엔티티 매니저를 통해 영속성 컨텍스트에 접근EntityManager.persist(entity)엔티티 매니저 : 영속성 컨텍스트 (1:1)비영속 (new/transient)객체를 생성한 상태, JPA와 관
JPA를 통해 테이블과 매핑할 클래스기본 생성자 필수 final, enum, interface, inner 클래스 사용 불가name 속성: 엔티티 이름 지정(기본 값은 클래스 이름)엔티티와 매핑할 테이블 지정name : 매핑할 테이블 이름catalog, schema,
연관관계 필요성 객체를 테이블에 모델링
다대일 : @ManyToOne일대다 : @OneToMany일대일 : @OneToOne다대다 : @ManyToMany테이블외래 키 하나로 양쪽 조인 가능방향이라는 개념이 특별히 없음객체참조용 필드가 있는 쪽으로만 참조 가능한쪽만 참조하면 단방향양쪽이 서로 참조하면 양방향
상속관계 매핑 관계형 데이터베이스는 상속 관계가 없음 슈퍼-서브타입 논리 모델을 상속관계로 매핑 @Inheritance(strategy=InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLEPE
프록시 객체는 실제 객체의 참조(target)를 보관프록시 객체를 호출하면 실제 객체의 메소드 호출 (프록시 객체 초기화)em.getReference() 데이터베이스 조회를 지연시키는 프록시(가짜) 객체 조회프록시 특징실제 클래스를 상속 받아서 만들어짐타입 체크 시 주
엔티티 타입@Entity로 정의하는 객체데이터가 변해도 식별자로 추적 가능생명 주기 관리, 공유값 타입int, Integer, String과 같이 자바 기본 타입이나 객체값만 있으므로 변경 시 추적 불가생명 주기를 엔티티에 의존공유하지 않고 복사해서 사용하거나, 불변
객체지향 쿼리 언어 JPQL 엔티티 객체를 대상으로 검색하는 JPA에서 제공하는 SQL를 추상화한 객체지향 쿼리 언어 SQL 문법과 유사함 SELECT, FROM, WHERE, GROUP BY 등 제공 JPA Criteria QueryDSL 네이티브 SQL JDB