[JPA] 간단한 자료 저장, 조회

간단한 자료 저장, 조회

스프링 부트와 JPA를 이용하여 간단하게 자료를 저장하고, 조회해보자.

build.gradle에 관련 의존성이 implementation 되어있는 상황에서 시작한다.


Book Bean

package jpabook.jpashop;

import lombok.Getter;
import lombok.Setter;

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

@Entity
@Getter @Setter
public class Book {

    @Id @GeneratedValue
    private Long bookNum;
    private String bookName;
}

@Entity 어노테이션을 통해 해당 Book Bean이 JPA가 관리하는 Entity 임을 선언한다.
Lombok의 Getter, Setter를 import 하면 @Getter @Setter 어노테이션으로 Getter, Setter 코드를 대신할 수 있다.
해당 클래스로 생성되는 자료의 Primary Key 임을 선언하는 @Id어노테이션을 사용했다.
자동으로 증가하며 생성되는 @GeneratedValue을 이용했다.

BookRepository

package jpabook.jpashop;

import org.springframework.stereotype.Repository;

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

@Repository
public class BookRepository {

    @PersistenceContext
    private EntityManager em;

    public Long save(Book book){

        em.persist(book);
        return book.getBookNum();
    }

    public Book find(Long num){
        return em.find(Book.class,num);
    }
}

스프링이 해당 클래스를 인지하고 스프링 빈으로 등록할 수 있도록 @Repository 어노테이션으로 등록했다.
@PersistenceContext를 이용하여, 엔티티 매니저를 스프링이 주입할 수 있도록 했다.
em.persist(book)로 자료를 저장한다.
em.find(Book.class,num) 엔티티 매니저의 find 메서드에 Bean Class, Primary Key 값을 넣어주면 해당 키값과 일치하는 객체를 찾을 수 있다.