[스프링 입문] 스프링 데이터 JPA

김우경·2021년 1월 11일
0

Spring Framework

목록 보기
8/12
post-thumbnail

김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.

Spring Data JPA

기본 CRUD 마저도 스프링 데이터 JPA가 모두 제공,,

개발자는 핵심 비즈니스 로직에만 집중,,

스프링 부트와 JPA위에 스프링 데이터 JPA를 얹는다면,,, 마치 마법처럼~ 인터페이스만으로도 개발이 가능 , , , ,,

하 지 만 JPA를 먼저 숙지하고 스프링 데이터 JPA를 배우는게 권장된다.

이전 프로젝트에서 사용했던게 Spring Data JPA ! !

환경 설정

JPA와 동일

Repository 작성

public interface SpringDataJPARepository extends JpaRepository<Member, Long>, MemberRepository {

    @Override
    Optional<Member> findByName(String name);
}

이만큼으로 끝나는 매직,, 가슴이 웅장해집ㄴㅣ다,,

스프링 데이터 JPA 제공 기능

  • extends한 JpaRepository에서 기본적인 CRUD와 공통된 단순 조회를 모두 제공함

  • 내 Entity에서 pk가 아닌 다른 키로 검색하고 싶을때 ?

    : findByName() , findByEmail() 처럼 메서드 이름 만으로도 조회가 가능한 기능이 제공된다.

    → Spring Data JPA가 자동으로 JPQL을 짜줌

    e.g. findByName(String name) 이면 select * from Entity e where e.name = ?

  • 페이징 기능도 자동 제공

SpringConfig 수정

private final MemberRepository memberRepository;

@Autowired
public SpringConfig(MemberRepository memberRepository) {
	this.memberRepository = memberRepository;
}

@Bean
public MemberService memberService() {
	return new MemberService(memberRepository);
}

SpringDataJPA가 SpringDataJPAMemberRepository를 자동으로 빈 등록해주므로

JPA와 Hibernate와 Spring Data JPA

https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/
님의 포스팅에 분명하게 정리되어있어서 이해하는데 도움을 많이 받았다 !!!

이런 느낌..




그동안은 JPA에 대한 개념이 제대로 정립되지 않은 상태에서 그냥 갖다가 쓰고 오류나면 구글링하기 바빴다,, 강의를 보면서 순수 JDBC부터 JDBCTemplate, JPA, Spring Data JPA까지 차근차근 실습하면서 익히니까 Spring Data JPA가 JPA의 무엇을 추상화 시킨 모듈인지, 어떤 기능을 제공하는지, 어떤 규칙을 갖고 사용하는지 등에 대해서 체계적으로 공부할 수 있어서 좋았다,, 영한쌤 최고 ^_^ 2021년 최고의 소비 아닐까요 ,,?

출처

김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.
docs.jboss.org

profile
Hongik CE

0개의 댓글