스프링 데이터 JPA

2023. 5. 2. 14:50카테고리 없음

스프링 데이터 JPA는 JPA를 도와주는 역할을 가지는 기능이다. 따라서 JPA를 모른다면 스프링 데이터는 무용지물이 되어버리는 것이기 때문에, JPA를 먼저 배운 후 스프링 데이터 JPA 를 배우도록 하는것이 좋다.

스프링 데이터 JPA 회원 레퍼지토리

package com.example.demo.Repository;

import com.example.demo.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {
//인터페이스가 인터페이스를 받을땐 extends 이다. <key,value>
    @Override
    Optional<Member> findByName(String name);
}

스프링 데이터 JPA회원 레퍼지토리를 사용하도록 스프링 설정 변경

package com.example.demo;

import com.example.demo.Repository.*;
import com.example.demo.aop.TimeTraceAop;
import com.example.demo.service.MemberService;
import jakarta.persistence.EntityManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {
    private final MemberRepository memberRepository;

    public SpringConfig(MemberRepository memberRepository, EntityManager em) {
        this.memberRepository = memberRepository;
    }

    @Bean// 스프링 빈에 내가 직접 입력해주어서 컨테이너에 넣는 방식.
    public MemberService memberService() { //spring bean에 저장되어서 memberService에 넣어주고
        return new MemberService(memberRepository); // 그 MemberService는 memberRespository를 사용할수있게끔하고
    }

스프링 데이터 JPA 제공 클래스

스프링 데이터 JPA 제공 기능

인터페이스를 이용한 기본적으로 하는 CRUD, 메서드 이름만으로도 조회 가능한 기능을 제공하고, 페이징 기능 자동 제공을 하는등 많은 기능을 한다.