Jpa: Repository/ 패스트캠퍼스 챌린지 04일차

망고쥬스·2021년 11월 4일
0
post-thumbnail

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

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/3FVdhDa

profile
#newbieDeveloper #since 2021.04.06

0개의 댓글