본문으로 바로가기

[Spring] 실전! 스프링 데이터 JPA - 1

category Spring 2021. 9. 2. 23:02

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84

 

실전! 스프링 데이터 JPA - 인프런 | 강의

스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다

www.inflearn.com

 

※ 프로젝트 환경설정

ㅁ 프로젝트 생성 및 세팅

- Intellij -> Build Tools -> Gradle -> Build and run using, Run test using 을 IntelliJ IDEA로 바꾸기

ㅁ 라이브러리 살펴보기

- Junit5가 4보다 짤때 편한점이 있음

- 터미널에서 dependency 트리 보는 명령어

 # ./gradlew dependencies --configuration compileClasspath

 

ㅁ h2 데이터베이스 설치

- springboot client랑 버전 맞추기

- docker 통해 설정하자

- docker compose yml 에 environment 설정하기

 > "" 없이 구성

    environment:

      - H2_OPTIONS=-ifNotExists

 

ㅁ 스프링 데이터 JPA와 DB 설정, 동작확인

- jpa.properties.hibernate.show_sql 보다는 logging.leve.org.hibernate.sql 로 로그 확인하는게 좋음 ( 로그파일로 남김 )

- logging.level.org.hibernate.type: trace 로 파라미터까지 확인 가능

- 엔티티가 생성자를 가질때 빈 생성자를 가져야하는 이유

 > 프록시 관련하여 protected 까지 열어두어야 프록시가 접근하여 프록시 객체 생성 가능ㅇ

- 테스트는 진행 후 DB를 롤백함  ( @Rollback(value = false) 로  롤백 안할수 있음)

- 하나의 transaction 에서 Persistence context에 있는 pk가 같은 객체는 모두 Equal 함

- p6spy 모듈 import 하여, 쿼리 파라미터 확인함

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.7'