일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- 쓰레드 #쓰레드풀 #프로세스
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- 썸네일 #이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- Today
- Total
요리사에서 IT개발자로
스파르타 코딩클럽 JPA 심화 JPARepository 기능 본문
SpringData Common의
CRUDRepository + PagingAndSortingRepository 의 쿼리 기능을 제공한다.
Repository에서 JPARepository까지
@NotRepositoryBean이 붙어 있는 인터페이스이다.
JpaRepository<Entity, Id> 를 extends하면 알맞게 프로그래밍된
SimpleJpaRepository 구현체 빈이 등록된다.
main클래스에 @SpringBootApplication을 통해서 자동으로 붙여지는
@EnableJpaRepositories의 JpaRepsitoriesRegister를 통해서 등록된다.
SpringDataJpa에 의해서 Entity의 CRUD, 페이징, 정렬 기능 메소스들을 가진 Bean이 등록된다.
JpaRepository 쿼리 사용방법
프로그래밍되어 제공되는 쿼리명 규칙
{접두어}{도입부}By{프로퍼티 표현식}{조건식}[(And || Or){프로퍼티 표현식}(조건식)](OrderBy{프로퍼티}ASC || DESC) (매개변수)
규칙 | 메소드 |
접두어 | Find, Get, Query, Count, ... |
도입부 | Distinct, First(N), Top(N) |
프로퍼티 표현식 | Person.Address.ZipCode => find(Person)ByAddress_ZipCode(...) |
조건식 | IgnoreCase, Between, LessThan, GreaterThan, Like, Contains, ... |
정렬 조건 | OrderBy{프로퍼티}Asc |
리턴 타입 | E, Optional<E>, List<E>, Page<E>, Slice<E>, Stream<E> |
매개변수 | Pageable, Sort |
중복 제거
findDistinctUserByNameOrPassword(String name, String password)
이름 또는 비밀번호가 중복되지 않은 사용자를 찾다.
findUserDistinctByNameOrPassword(String name, String password)
이름 또는 비밀번호가 일치하는 사용자를 찾다.
대소문자 무시
findByNameIgnoreCase(String name)
이름의 대소문자를 무시하고 사용자를 찾다.
findByNameAndPasswordAllIgnoreCase(String name, String password)
이름과 비밀번호 모두 대소문자를 무시하고 사용차를 찾다.
정렬
findByNameOrderByNameAsc(String name)
이름 기준 이름의 오름차순으로 찾다. (오래된순으로)
findByNameOrderByNameDesc(String name)
이름 기준 이름의 내림차순으로 찾다.(최신순으로)
페이징
Page<User> findByName(String name, Pageable pageable)
주어진 페이지 정보에 따라 이름이 일치하는 사용자를 찾다.
Slice<User> findByname(String name, Pageable pageable)
주어진 페이지 정보에 따라 이름이 일치하는 사용자를 찾다.
Page와 Slice는 같은 메서드를 제공하지만
Page는
전체 데이터에 대한 상세한 정보를 제공하고
Slice는
더 경량화 된 방식으로 페이지네이션된 결과를 반환한다.
Page는 해당 페이지 에서 해당 사용자를 존재할 것인지
Slice는 해당 스크롤 내에서 해당 사용자를 존재할 것인지
페이지는 한정되있지만 스크롤은 계속 내릴 수 있다.(차이점)
List<User> findByName(String name, Sort sort)
주어진 사용자와 일치하는 사용자를 찾아서 sort에 정의된 (Asc, Desc)방식에 따라 정렬된 리스트로 반환한다.
List<User> findByName(String name, Pageable pagealbe)
주어진 페이지에 일치하는 사용자들을 찾아서 반환한다.
Stream<User> readAllByNameNotNull()
데이터 베이스에서 이름이 null이 아닌 모든 사용자를 반환한다.(회사에서 사용금지)
https://hs-backend.tistory.com/209
'Spring' 카테고리의 다른 글
테스트 코드의 중요성 (0) | 2024.07.05 |
---|---|
Spring Boot @Transactional 요약 (0) | 2024.07.02 |
스파르타 코딩클럽 JPA 심화 트랜잭션 (0) | 2024.06.26 |
SQL 쿼리 delete메소드 작동에 대해 (0) | 2024.06.25 |
PasswordEncoder 한 비밀번호를 비교해주는 matches와 이유 (0) | 2024.06.21 |