본문 바로가기

학습 기록/스프링 부트3 백엔드 개발자 되기[자바편]

[05장.4] 1. 스프링 데이터와 스프링 데이터 JPA

스프링 데이터(Spring Data)

1) 비즈니스 로직에 더 집중할 수 있도록 데이터베이스 사용 기능을 클래스 레벨에서 추상화

2) 인터페이스에서 CRUD를 포함한 여러 메서드 포함

3) 알아서 쿼리 생성

4) 페이징 처리 기능

5) 메서드 이름으로 자동 쿼리 빌딩

6) 각 데이터베이스 특성에 맞춰 기능 확장

* 페이징 처리 : 하나의 페이지에 표시해야 할 데이터가 많은 경우, 데이터를 나누어 표시

 

스프링 데이터 JPA(Spring Data JPA)란?

: 스프링 데이터의 공통적인 기능에서 JPA의 유용한 기술이 추가된 기술

: 스프링 데이터의 인터페이스 PagingAndSortingRepository를 상속받아 JPARepository 인터페이스를 생성

: JPA를 편리하게 사용하는 메서드 제공

 

[기존 상태 변경 방법]

@PersistenceContext
EntityManager em;

public void join(){
	// 기존 엔티티에서 상태를 바꾸는 방법 >> persist() 메서드 호출을 통해 상태 변경
	Member member = new Memeber(1L, "홍길동");
    em.persist(member);
}

 

[JPARepository 사용]

: 레포지토리 역할을 하는 인터페이스를 통해 테이블 조회, 수정, 생성, 삭제를 간단히 가능

: 인터페이스에서 상속을 받은 다음 제네릭에 관리할 <엔티티 이름, 엔티티 기본키 타입> 입력

// 레포지토리 역할 인터페이스 생성
public interface MemberRepository extends JPARepository<Member, Long>{
}
@Service
public class MemberService{
	@Autowired
    MemberRepository memberRepository; // 빈 생성 및 주입
    
   public void test(){
   		// 생성 및 저장
   		memberRepository.save(new Member(1L, "홍길동");
   }
   
   Optional<Member> member = memberRepository.findById(1L); // id 이용 단일 조회
   List<Member> members = memberRepository.findAll(); // 전체 member 조회
   
   memberReposistory.deleteById(1L); // 삭제
}