JPA Repository 상속
public interface MemberRepository extends JpaRepository<Member, Long> {
}
엔티티는 Member 클래스, Member 엔티티의 id 타입은 Long으로 가정했다.
JPA Repository 기본 메서드
findAll() : 테이블의 전체 목록을 조회한다. List<T> 반환
findById(id) : 기본키의 값이 id인 객체를 조회한다. Optional<T> 반환
save(member) : member 객체를 테이블에 저장한다.
saveAll(memberList) : memberList의 모든 객체를 테이블에 저장한다.
delete(member) : member 데이터를 삭제한다.
deleteAll(memberList) : memberList의 모든 객체를 삭제한다.
count() : 테이블의 전체 데이터 수를 반환한다.
JPA Repository 메서드 명명 규칙
findByXX() : XX에 해당하는 필드의 값이 인자와 일치하는 객체를 조회한다.
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByName(String name);
}
countByXX() : 결과 데이터의 수를 반환한다.
public interface MemberRepository extends JpaRepository<Member, Long> {
Long countByAge(int age);
}
...And...() : 여러 필드에 대해 and로 조회한다.
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByNameAndEmail(String name, String email);
}
...Or...() : 여러 필드에 대해 or로 조회한다.
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByNameOrEmail(String name, String email);
}
...Between() : 필드의 값이 두 인자 사이의 값인 객체를 조회한다.
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByAgeBetween(int a, int b);
}
...LessThan() : 필드의 값이 인자보다 작은 객체를 조회한다. (...GreaterThan(), ...LessThanEqual(), ...GreaterThanEqual())
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByAgeLessThan(int a);
}
...Like() : Like를 통한 데이터를 조회한다. ( <=> ...NotLike())
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByNameLike(String name);
}
...Null(), ...IsNull() : 해당 필드의 값이 Null인 객체를 조회한다. (<=> ...NotNull(), ...IsNotNull())
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByNameNull(String name);
Optional<Member> findByNameISNull(String name);
}
...True() : 해당 필드의 값이 True인 객체를 조회한다. (<=> ...False())
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByMarriedTrue();
}
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
54일차 - stream 정렬 (0) | 2023.05.10 |
---|---|
53일차 - 국제화 (0) | 2023.05.08 |
51일차 - 도메인 (0) | 2023.05.03 |
50일차 - 알고리즘(DP) (0) | 2023.05.02 |
49일차 - 페이스북 로그인, 인스타그램 연동하기 (0) | 2023.05.01 |