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