기본 Member Entity와 Repository를 만들어 보았습니다.

Member

package study.datajpa.entity;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
@Getter
@Setter
public class Member {
    @Id
    @GeneratedValue
    private Long id;
    private String username;

}

MemberJpaRepository

package study.datajpa.repository;

import org.springframework.stereotype.Repository;
import study.datajpa.entity.Member;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Repository
public class MemberJpaRepository {
    @PersistenceContext //스프링 컨테이너가 엔티티 매니저를 가져다 줌
    private EntityManager em;

    public Member save(Member member){
        em.persist(member);
        return member;
    }

    public Member find(Long id){
        return em.find(Member.class ,id);
    }
}

이전에 배웠던 JPA 강의에서 배웠던 기본 insert, select(1) 하는 쿼리문이 발생하게하는 메소드입니다. 이를 스프링 데이터 JPA를 통해 더 간단하게 구현하면서 더 많은 기능을 제공받을 수 있습니다.

 

MemberRepository (Spring Data JPA)

package study.datajpa.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import study.datajpa.entity.Member;

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

interface 이지만 테스트에서 돌려보면 findById, findAll, save 등 모든 기본적인 CRUD 기능이 정상적으로 작동하는 것을 확인할 수 있습니다. 

 

이러한 기능을 어떻게 제공하는 것인지, 어떻게 해야 잘 사용할 수 있을지 알아봅시다!

 

 

 

 

출처

 

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

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

www.inflearn.com

 

 

+ Recent posts