

주의점
@Setter 실무에서 가급적 사용하지 않기@NoArgsConstructor AccessLevel.PROTECTED: 기본 생성자 막고 싶지만, JPA 스펙상 PROTECTED로 열어두어야 함@ToString: 가급적 내부 필드만(연관관계 없는 필드만)스프링 데이터 JPA가 구현 클래스 대신 생성

org.springframework.data.repository.Repository를 구현한 클래스는 스캔 대상 기능
MemberRepository: memberRepository.getClass() -> class.com.sun.proxy.$ProxyXXX @Repository 생략 가능
JpaRepository 인터페이스: 공통 CRUD 제공JpaRepository 공통 기능 인터페이스
public interface JpaRepository<T, ID extends Serializable>
extends PagingAndSortingRepository<T, ID>
{
...
}


save(S): 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.delete(T): 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출findById(ID): 엔티티 하나를 조회한다. 내부에서 EntityManager.find() 호출getOne(ID): 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference()호출findAll(...): 모든 엔티티를 조회한다. 정렬(Sort)이나 페이징(Pageable)조건을 파라미터로 제공할 수 있다."본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다."