JPA 적용

6066 단어 SpringJPAJPA

1. 환경설정 적용

의존성 추가

build.gradle에 추가

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

application.properties

spring.jpa.show.sql=true
spring.jpa.hibernate.ddl-auto=none

Model Domain 클래스

어노테이션 추가

@Entity -> JPA에서 관리할 객체 선언

컬럼 변수

@Id -> 객체의 PrimaryKey 선언
@GeneratedValue(strategy = GenerationType.IDENTITY) -> 기본키 생성을 데이터베이스에 위임
													   DB가 알아서 Auto_Increment해줌
                                                       MySql, PostgreSQL, H2 등에서 사용
                                                       

Repository 클래스 변경

EntityManager 중요!

EntityManager 변수 생성 후 Repository 생성자에 매개변수로 추가

private final EntityManager em;

public JpaMemberRepository(EntityManager em){
	this.em = em;
}

repository join메소드 변경

  @Override
    public Member save(Member member) {
        em.persist(member);
        return member;
    }

영속성 컨텍스트에 member정보 저장

em.find를 통한 조회

   @Override
    public Optional<Member> findById(Long id) {
        Member member = em.find(Member.class, id);
        return Optional.ofNullable(member);
    }

em.createQuery를 통한 조회

 @Override
   public Optional<Member> findByName(String name) {
   List<Member> result =  em.createQuery("select m from Member m where m.name = :name", 
   Member.class).setParameter("name",name).getResultList();

        return result.stream().findAny();
    }

좋은 웹페이지 즐겨찾기