[DEV] J-Jay

스프링 부트 ORM (2) 본문

Back-end/Spring

스프링 부트 ORM (2)

J-Jay 2023. 9. 3. 17:13
728x90

스프링 데이터

스프링 데이터는 비즈니스 로직에 더 집중할 수 있게 데이터베이스 사용 기능을 클래스 레벨에 추상화 한다.

스프링 데이터에서 제공하는 인터페이스를 통해 스프링 데이터를 사용할 수 있다.

이 인터페이스에서는 CRUD를 포함한 여러 메서드가 포함되어 있으며, 알아서 쿼리를 생성해준다.

추가로 페이징 처리 기능과 메서드 이름으로 자동으로 쿼리 빌딩하는 기능, 각 데이터베이스의 특성에 맞춰 기능을 확장해 제공하는 기술도 제공한다.

 

스프링 데이터 JPA

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

스프링 데이터 JPA에서는 스프링 데이터의 인터페이스인 PagingAndSortingRepository를 상속받아 JpaRepository 인터페이스를 만들었고, JPA를 더 편리하게 사용하는 메서드를 제공한다. 이전 장에서 설명한 엔티티 매니저에서는 메서드 호출로 엔티티 상태를 바꾸는 작업을 했었다.

https://dev-junick.tistory.com/49

 

스프링 부트 ORM (1)

ORM(Object-relational mapping) ORM은 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법이다. 예를 들어 데이터베이스에 나이(age)와 성명(name) 컬럼에 20, J-Jay 라는 값이 들어있다고 보고, 이것을

dev-junick.tistory.com

하지만 스프링 데이터 JPA를 사용하면 레포지터리 역할을 하는 인터페이스를 만들어 데이터베이스의

테이블 조회, 수정, 생성, 삭제 같은 작업을 간단히 할 수 있다.

 

CRUD메서드를 사용하기 위한 JpaRepository 상속

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

 

스프링 데이터JPA 메서드

@Service
public class MemberService {
    @Autowired
    MemberRepository memberRepository;

    public void test() {
        // 생성(create)
        memberRepository.save(new Member(1L, "J-Jay"));

        // 조회(Read)
        Optional<Member> member = memberRepository.findById(1L); //단건 조회
        List<Member> allMembers = memberRepository.findAll();    //전체 조회

        // 삭제(Delete)
        memberRepository.deleteById(1L); //단건 삭제
        memberRepository.deleteAll();    //전체 삭제
    }
}