지우쓰 개발일기
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr Spring Data Project 다양한 데이터 저장소에 대한 접근을 추상화해서 데이터 접근 코드를 줄이고 개발 편의를 제공 ex) Spring DATA REDIS, Spring DATA MONGO, ... Spring Data JPA 스프링 프레임워크 + JPA에 특화된 기능 제공 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스만으로도 작동 동적으로 구현 객체를 생성해서 주입 JpaR..
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr 벌크 연산 em.remove()는 너무 오래 걸림 em.executeUpdate(): 벌크 연산 후 영향을 받은 엔티티 건수 반환 주의점 벌크 연산은 Persistence Context를 무시하고 DB에 바로 쿼리한다. 벌크 연산 전 후의 Persistence Context 엔티티들이 DB에 값과 차이가 날 수 있다. 해결책 em.refresh() DB에서 엔티티 다시 조회 벌크 연산 먼저 실행 벌..
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr QueryDSL JPQL을 코드로 쉽고 간결하게 작성할 수 있는 프로젝트 시작 public void queryDSL() { EntityManager em = emf.createEntityManager(); JPAQuery query = new JPAQuery(em);// 생성자 파라미터로 EntityManager QMember qMember = new QMember("m");// 생성되는 JPQL ..
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr 엔티티 직접 사용 JPQL에서 엔티티 객체를 직접 사용하면 SQL에서는 해당 엔티티의 PK 값을 사용한다. 묵시적 조인은 일어나지 않는다. 즉, 엔티티 식별자를 사용한 JPQL과 엔티티를 직접 사용한 JPQL이 실행하는 SQL은 동일하다. Named Query 동적 쿼리(Dynamic Query) 정적 쿼리(Named Query) JPQL을 문자로 완성해서 직접 넘기는 것 미리 정의한 쿼리에 이름을..
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr Path Expression 용어 상태 필드(State Field): 단순 값 저장 필드 연관 필드(Association Field): 연관관계, 임베디드 타입 저장 필드 단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티 컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션 특징 상태 필드 : 경로 탐색의 끝으로 더 탐색할 수 없다. 단일 값 ..