본문 바로가기

개인공부/JPA11

12장 스프링 데이터 JPA 12장. 스프링 데이터 JPA 12.1 스프링 데이터 JPA 소개 스프링 데이터 JPA는 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트다. 이 프로젝트는 데이터 접근 계층을 개발할 때 지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결한다. 우선 CRUD를 처리하기 위한 공통 인터페이스를 제공한다. 리포지토리를 개발할 때 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입해준다. CRUD를 처리하기 위한 공통 메소드는 스프링 데이터 JPA가 제공하는 `org.springframework.data.jpa.repository.JpaRepository인터페이스에 있다. 예제 12.2 스프링 데이터 JPA 적용 public interfac.. 2024. 2. 8.
10장 객체지향 쿼리 언어 https://github.com/MoochiPark/jpa/edit/master/chapter10/README.md 음 참고하였습니다. 감사합니다. Chapter 10. 객체지향 쿼리 언어 이장의 내용 객체지향 쿼리 소개 JPQL Criteria QueryDSL 네이티브 SQL 객체지향 쿼리 심화 10.1 객체지향 쿼리 소개 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리다. SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. 10.2 JPQL JPQLJava Persistence Query Language은 엔티티 객체를 조회하는 객체지향 쿼리다. JPQL은 결국 SQL로 변환된다. Criteria나 QueryDSL도 결국 JPQL을 만들어주는 빌더 역할을 할 뿐이므로 JPQL을 잘.. 2024. 2. 5.
9장 값 타입 https://github.com/MoochiPark/jpa/edit/master/chapter09/README.md을 참고하며 추가하였습니다. 감사합니다. Chapter 09. 값 타입 JPA의 데이터 타입을 가장 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입은 @Entity로 정의하는 객체이고, 값 타입은 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말한다. 엔티티 타입은 식별자를 통해 지속해서 추적할 수 있지만, 값 타입은 추적할 수 없다. 값 타입은 3가지로 분류할 수 있다. 기본 값 타입basic value type 자바 기본 타입 래퍼 클래스 임베디드 타입embeded type(복합 값 타입) 컬렉션 값 타입collectio.. 2024. 2. 5.
8장 프록시와 연관관계 관리 https://github.com/MoochiPark/jpa/edit/master/chapter08/README.md을 보며 참고 하였습니다. 감사합니다. Chapter 08. 프록시와 연관관계 관리 프록시와 즉시 로딩, 지연 로딩 영속성 전이와 고아 객체 8.1 프록시 엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아니다. printUserAndTeam() 메서드는 memberId로 회원 엔티티를 찾아서 연관된 팀의 이름도 출력한다. 반면 printUser() 메서드는 회원 엔티티만 출력하고 연관된 팀 엔티티는 전혀 사용하지 않는다. printUser() 메서드는 회원 엔티티만 사용하므로 em.find()로 회원 엔티티를 조회할 때 회원과 연관된 팀 엔티티까지 데이터베이스에서 함께 조회해 두.. 2024. 2. 5.