STUDY/Spring
Spring Boot | JPA 사용해보기 (2) Spring Data JPA
개미606
2021. 4. 23. 11:11
Spring Data JPA
지난 글에서 JPA만 사용해서 EntityManager
를 이용해 DB와 소통했다면, 이번에는 Spring Data JPA
를 사용해 볼 것이다.Spring Data JPA
는 리포지토리에 구현클래스 없이 인터페이스만으로 개발을 완료할 수 있다.JPA
를 더 쉽게 도와주는 것일 뿐!
실무에서는 JPA와 스프링데이터JPA를 기본으로 사용하고, 복잡한 동적 쿼리는
Querydsl
이라는 라이브러리를 사용한다고 한다.
(출처: 인프런 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)
Repository를 Spring Data JPA 방식으로 변경
@Repository
애노테이션을 붙이지 않아도 된다!JpaRepository<DTO, PK type>
을 상속받아 interface
로 작성하기만 하면 기본적인 CRUD
는 작성하지 않아도 모두 구현된다.
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long> {
}
Service 수정
impl을 작성할 필요도 없기 때문에 바로 interface
를 상속받으면 된다.findAll()
은 SELECT * FROM
과 같다 조건 없이 모든 튜플을 가져온다.save()
는 INSERT
와 같음. 기본적인 CRUD
를 자동으로 정의해주기 때문에 그냥 메서드로서 쓰기만 하면 되는것... 우와..
@Transactional
@Service
@RequiredArgsConstructor
public class MemberService {
// private final MemberRepository repository;
private final SpringDataJpaMemberRepository repository;
public List<Member> findAll() {
return repository.findAll();
}
public Member join(Member member) {
return repository.save(member);
}
}
테스트
정상적으로 잘 된다.