Skip to content

Latest commit

 

History

History
49 lines (25 loc) · 3.81 KB

spring-data-jpa-reference-coding.md

File metadata and controls

49 lines (25 loc) · 3.81 KB

스프링 데이터 JPA 레퍼런스 코딩

참고

스프링 데이터 JPA 레퍼런스

유툽 인덱스

스프링 데이터 JPA Day 1. 주요 인터페이스 자세히 살펴보기

스프링 데이터 JPA Day 1. 주요 인터페이스 자세히 살펴보기

스프링 데이터 JPA 레피런스를 보기 시작했습니다. 이번에는 처음부터 3.2장까지 살펴봤습니다.

https://docs.spring.io/spring-data/jpa/docs/2.0.7.RELEASE/reference/html/

의존성 관리는 스프링 부트를 쓰는 방법과 스프링 데이터의 릴리즈 트레인을 사용하는 방법이 있는데, 사실상 스프링 부트도 스프링 데이터의 릴리즈 트레인을 사용합니다. 데모로 스프링 부트에서 데이터 버전 커스터마이징 하는 방법을 보여드렸습니다.

중요한 내용은 JpaRepository - PagingAndSortingRepository - CrudRepository - Repository 이러한 상속 구조와 각 인터페이스의 역할을 이해하는 것인데요.

젤 밑단에 있는 영속화 기술에 특화된 JpaRepository를 빼면 나머진 다른 영속화 기술용 리파지토리에서도 재사용하는 공용 인터페이스들 입니다. 그 인터페이스들을 자세히 살펴보면서 설명해 드렸습니다.

간단한 예제로 Book이라는 엔티티 추가하고 findByIsbn이라는 쿼리 메서드 쿼리 만드는 것을 보여드렸습니다.

스프링 데이터 JPA Day 2. 상속 없이도 리포지토리 만들 수 있다

스프링 데이터 JPA Day 2. 상속 없이도 리포지토리 만들 수 있다

스프링 데이터 JPA 레퍼런스 2.3을 살펴봤습니다.

Repository 인터페이스를 상속해서 만드는 방법 말고, 애노테이션을 사용해서 만드는 방법도 있는데.. 가능은 하지만 사실상 낚시성 제목에나 쓰라고 만들어 둔 기능 같다는 생각이 드네요.

그보다 사실 훨씬 중요한 내용은 스프링 프레임워크 5에 도입된 널 처리 관련 애노테이션들을 사용할 수 있다는 겁니다.

https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/core.html#null-safety

레퍼런스에 설명이 약간 오묘하면서 이상한 부분이 있어서 코딩으로 확인해 봤는데 아니나 다를까... 예상 했던 대로 동작했구요.

마지막으로 여러가지 영속화 기술을 사용할 때, 즉, JPA도 쓰고 몽고 DB도 쓰는 경우에 해당 기술에 특화된 인터페이스의 리포지토리를 상속 받으시는게 좋습니다. 아니면 맨 마지막에 나온 코드 예제처럼 해당 기술의 베이스 패키지를 각기 다른 패키지로 지정해 주거나요.. (이건 다음 시간에 코딩으로 확인해 보겠습니다.)

스프링 데이터 JPA Day 3. 쿼리 메서드 만들기

스프링 데이터 JPA Day 3. 쿼리 메서드 만들기

스프링 데이터 JPA 레퍼런스 2.4를 보기 시작했습니다.

메서드를 보고 쿼리를 만드는 방법이 크게 두가지 있습니다. 메서드 이름을 보고 쿼리를 만드는 방법과, 메서드에 있는 어떠한 정보를 (보통 애노테이션이겠죠?) 바탕으로 개발자가 직접 정의한 쿼리를 가져오는 방법.

그럼 그 두가지 방법 중에 어떤 방법으로 가져와야 하는지.. 그게 이제 스토리지 마다 달라 질 수 있는데, 세가지 전략과 그 중에 기본으로 설정되어있는 전략은 무엇인지 또 어떻게 그 전략을 바꿀 수 있는지 살펴봤습니다.