본문 바로가기

Lecture/스프링 입문 수업

스프링부트입문_19JPA적용

반응형

1. build.gradle 파일에 JPA, h2 데이터베이스 과련 라이브러리 추가

 

2. JPA관련 application.properties 설정 추가

3. Member 클래스에 Entity매핑 추가

- 테이블과 매핑되는 도메인 Member클래스에 @Entiry 어노케이션을 추가한다.

- 변수와 컬럼명이 같으면 그대로 사용하고 다른 경우 @Column 어노테이션을 사용한다.

- Primary키의 경우 @Id를 추가한다. sequence의 경우 @GenerateValue 어노테이션을 사용한다.

4.JPAMemberRepository를 추가

- MemoryMemberRepository대신 JPAMemberRepository를 추가한다.

- JpaMemberRepository 클래스는 EntityManager 객체를 DI받아야 한다. EntityManager 객체는 수동으로 Bean등록하는것이 아니라 스피링에서 자동 생성한다.

- 등록하는 문장은 connection, insert등이 모두 필요 없고, persist(객체) 한문장으로 끝낼 수 있다.

5. 서비스 계층에 @Transactional 추가

- 서비스 계층에 @Transactional을 추가하면 서비스를 수행하다 runtime error가 발생하면 Rollback하게 된다.

- 테스트 환경에서의 @Transactional은 무조건 롤백 시킨다.

6. SpringConfig 변경

- DataSource와 EntityManager 객체를 생성 후 SpringConfig생성자를 통해 DI 받는다.

- MemberRepository생성자에서 MemoryRepository를 return하던 것을 JpaRepository로 변경한다. 다시 MemoryRepository로 변경하게되면 DB를 안쓰고 메모리를 그대로 쓰게 된다.

반응형