스프링 데이터(Spring Data)
1) 비즈니스 로직에 더 집중할 수 있도록 데이터베이스 사용 기능을 클래스 레벨에서 추상화
2) 인터페이스에서 CRUD를 포함한 여러 메서드 포함
3) 알아서 쿼리 생성
4) 페이징 처리 기능
5) 메서드 이름으로 자동 쿼리 빌딩
6) 각 데이터베이스 특성에 맞춰 기능 확장
* 페이징 처리 : 하나의 페이지에 표시해야 할 데이터가 많은 경우, 데이터를 나누어 표시
스프링 데이터 JPA(Spring Data JPA)란?
: 스프링 데이터의 공통적인 기능에서 JPA의 유용한 기술이 추가된 기술
: 스프링 데이터의 인터페이스 PagingAndSortingRepository를 상속받아 JPARepository 인터페이스를 생성
: JPA를 편리하게 사용하는 메서드 제공
[기존 상태 변경 방법]
@PersistenceContext
EntityManager em;
public void join(){
// 기존 엔티티에서 상태를 바꾸는 방법 >> persist() 메서드 호출을 통해 상태 변경
Member member = new Memeber(1L, "홍길동");
em.persist(member);
}
[JPARepository 사용]
: 레포지토리 역할을 하는 인터페이스를 통해 테이블 조회, 수정, 생성, 삭제를 간단히 가능
: 인터페이스에서 상속을 받은 다음 제네릭에 관리할 <엔티티 이름, 엔티티 기본키 타입> 입력
// 레포지토리 역할 인터페이스 생성
public interface MemberRepository extends JPARepository<Member, Long>{
}
@Service
public class MemberService{
@Autowired
MemberRepository memberRepository; // 빈 생성 및 주입
public void test(){
// 생성 및 저장
memberRepository.save(new Member(1L, "홍길동");
}
Optional<Member> member = memberRepository.findById(1L); // id 이용 단일 조회
List<Member> members = memberRepository.findAll(); // 전체 member 조회
memberReposistory.deleteById(1L); // 삭제
}
'학습 기록 > 스프링 부트3 백엔드 개발자 되기[자바편]' 카테고리의 다른 글
[06장.1] 1. API와 REST API (0) | 2023.09.06 |
---|---|
[05장.3] 3. 엔티티 상태 (0) | 2023.09.04 |
[05장.3] 2. 영속성 컨텍스트 (0) | 2023.09.04 |
[05장.3] 1. JPA와 Hibernate, Entity (1) | 2023.09.04 |
[05장.2] ORM(Object-relation mapping) (0) | 2023.09.01 |