기본 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
'spring > 인프런 강의 정리' 카테고리의 다른 글
[Spring Data JPA] 3. 쿼리 메소드 기능 (0) | 2022.05.14 |
---|---|
[Spring Data JPA] 2. 예제 도메인 모델과 동작확인 & 공통 인터페이스 (0) | 2022.05.13 |
[JPA 활용 2] 5. API 개발 고급 - 실무 필수 최적화 (0) | 2022.04.24 |
[JPA 활용 2] 4. API 개발 고급 - 컬렉션 조회 최적화 (0) | 2022.04.22 |
[JPA 활용 2] 3. API 개발 고급 - 지연 로딩과 조회 성능 최적화 (0) | 2022.04.21 |