Jpa Repository 기능들
count() : count조회 형식의 쿼리, 데이터 갯수를 파악
existById() : Id값으로 조회 하여 해당 값이 있는지 없는지 여부를 확인 (불대수값 리턴) [Count를 통해 조회하게 된다]
delete() : id값으로 해당 Entity를 삭제처리 (delete 전, 해당 Entity가 실제로 존재하는지 Select로 한번 확인)
deleteAll() : 전체 Entity 삭제처리 (Delete전, SelectAll() 실행)
데이터가 많은 경우 성능에 문제가 생김 (1000만개의 데이터가 있으면 1000만번의 쿼리가 돌게 됨)
이처럼 많은 데이터를 한번에 처리하게 될 경우에는 Batch를 사용해야한다.
deleteInBatch() : Select로 데이터 유무를 검색하지 않고 바로 전체테이블을 삭제하게 된다.
Page
Page<User> users = userRepository.findAll(PageRequest.of(1,3));
System.out.println("page: "+users);
System.out.println("totalElements: "+users.getTotalElements());
System.out.println("totalPages: "+users.getTotalPages());
System.out.println("numberOfElements: "+users.getNumberOfElements());
System.out.println("sort: "+users.getSort());
System.out.println("size:: "+users.getSize());
users.getContent().forEach(System.out::println);
getTotalElements(): 총 데이터 갯수
getTotalPages(): 총 페이지 갯수
getNumberOfElements(): 가져온 페이지 갯수
getSort(): 지정되어진 정렬방식
getSize(): 총 사이즈
getContent(): 들어있는 내용 출력
기타 등등..
Example
QueryByExample : 쿼리에서 검색기능을 제공, 다만 사용처가 애매하여 잘 사용을 하지 않는다.
ExampleMatdcher matcher = ExampleMatcher.matching()
.withIgnorePaths("name") //이름 조건은 무시 시킨다
.withMatcher("email", endsWith());
Example<User> example = Example.of(new User("ma","fastcampus.com"),matcher);
//User객체에서 이름은 "ma", 이메일은 "fastcampus.com"의 조건중 매치되는걸 찾는다.
userRepository.findAll(example).forEach(System.out::println);
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에끝내는Java/Spring웹개발마스터초격차패키지Online
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.