QueryMethod
Jpa에서 제공하는 메서드에 +@해서 세부 조건(where)에 해당하는 데이터를 뽑게 해주는 메서드
1. findBy와 동의어들
User findByEmail(String email);
User getByEmail(String email);
User readByEmail(String email);
User queryByEmail(String email);
User searchByEmail(String email);
User streamByEmail(String email);
User findUserByEmail(String email);
User findSthByEmail(String email);
java
2. 서술어 is=equals : 없는것과 동일
Set<User> findUserByName(String name);
Set<User> findUserByNameIs(String name);
Set<User> findUserByNameEquals(String name);
java
3. first=top : 처음 n번째 요소를 꺼내기
User findFirst1ByName(String name); //==findFirstByName
List<User> findFirst2ByName(String name);
List<User> findTop2ByName(String name);
List<User> findLast1ByName(String name); //주의! Last는 없음. 이거는 =findByName처리
4. and(매개변수 다 만족), or(매개변수 하나 이상 만족)
List<User> findByEmailAndName(String email,String name);
List<User> findByEmailOrName(String email,String name);
java
5. after(매개변수 포함x 이후), greaterthan(equal), between(두 매개변수 포함,사이)
List<User> findByCreatedAtAfter(LocalDateTime yesterday);
List<User> findByCreatedAtGreaterThan(LocalDateTime yesterday);
List<User> findByCreatedAtGreaterThanEqual(LocalDateTime yesterday);
List<User> findByCreatedAtBetween(LocalDateTime yesterday,LocalDateTime tomorrow);
List<User> findByIdAfter(Long Id); //but after는 시간개념에 잘 쓰이는 편임
List<User> findByIdBetween(Long id1, Long id2);
List<User> findByIdGreaterThanEqualAndIdLessThanEqual(Long id1, Long id2);//between을 풀어서 쓰면 이렇다
java
6. isnotnull, isempty(collection이 비었는지 검사)
List<User> findByIdIsNotNull();
List<User> findByAddressIsNotEmpty();
List<User> findByAddressIsNotNull();
// List<User> findByIdIsNotEmpty(); //(x) : IsEmpty / IsNotEmpty can only be used on collection properties!
java
7. in
List<User> findByNameIn(List<String> names);
8. startingwith, endingwith, contains, like(정규식)
List<User> findByNameStartingWith(String name);
List<User> findByNameEndingWith(String name);
List<User> findByNameContains(String name);
List<User> findByNameLike(String name);
9. orderby
List<User> findFirstByNameOrderByIdDesc(String name);
List<User> findFirstByNameOrderByEmailDescIdAsc(String name);
10. findby(sort)
List<User> findFirstByName(String name,Sort sort);
11. page<User> (pageable)
Page<User> findByName(String name, Pageable pageable); //Page는 Slice 인터페에스(조각에 대한 정보들 포함)를 상속받고 있으며 여기에 전체를 보는 total 메서드도 있다.
java
12. nativeQuery
@Query(value="select * from user limit 1",nativeQuery = true)
Map<String,Object> findRawRecord();
'BackEnd > 패캠' 카테고리의 다른 글
[JPA] 연관관계 (0) | 2022.02.01 |
---|---|
[JPA] EntityListener (0) | 2022.01.31 |
[JPA] data.sql 설정 / 롬복 / Repository Interface 메소드 (0) | 2022.01.29 |
swagger (0) | 2022.01.28 |
테스트 커버리지 확인 (0) | 2022.01.27 |
Comment