[SPRING] Spring 데이터 findBy / findAllBy 간의 JPA 차이점
SPRINGSpring 데이터 findBy / findAllBy 간의 JPA 차이점
다음 기간 동안 Spring 데이터 JPA 키워드를 사용할 때 어떤 차이가 있습니까?
List<SomeEntity> findBySomeCondition();
과
List<SomeEntity> findAllBySomeCondition();
해결법
-
==============================
1.아니요, 둘 사이에 차이점이 없습니다. 정확히 같은 쿼리를 실행합니다. 메서드 이름에서 쿼리를 파생 할 때 스프링 데이터에서 All 부분을 무시합니다. 유일한 중요한 비트는 By 키워드입니다. 그 다음에 오는 모든 것은 필드 이름으로 취급됩니다 (OrderBy와 같은 다른 키워드를 제외하고는 findAllByOrderByIdAsc와 같은 이상한 찾고 메서드 이름으로 이어질 수 있음).
아니요, 둘 사이에 차이점이 없습니다. 정확히 같은 쿼리를 실행합니다. 메서드 이름에서 쿼리를 파생 할 때 스프링 데이터에서 All 부분을 무시합니다. 유일한 중요한 비트는 By 키워드입니다. 그 다음에 오는 모든 것은 필드 이름으로 취급됩니다 (OrderBy와 같은 다른 키워드를 제외하고는 findAllByOrderByIdAsc와 같은 이상한 찾고 메서드 이름으로 이어질 수 있음).
이는 다음과 같은 것이 완전하게 유효 함을 의미합니다.
List<SomeEntity> findAnythingYouWantToPutHereBySomeCondition();
그리고 다음과 똑같은 SQL 쿼리를 실행합니다 :
List<SomeEntity> findBySomeCondition();
또는
List<SomeEntity> findAllBySomeCondition();
업데이트 : 설명서에서이 동작에 대한 공식적인 설명을 본 적이 없지만 스프링 데이터 (Kay)의 2.0 릴리스에 대한 최근 블로그 게시물에서 설명했습니다.
-
==============================
2.findBy 메소드는 이름이나 findByFirstName (String firstName)과 같은 다른 기준으로 찾으려는 경우에 사용됩니다.
findBy 메소드는 이름이나 findByFirstName (String firstName)과 같은 다른 기준으로 찾으려는 경우에 사용됩니다.
findAll 메소드는 일반적으로 스펙을 제공함으로써 찾는다.
List<T> findAll(Specification<T> spec);
더 명확하게 보려면 아래의 문서를 참조하십시오.
http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html
from https://stackoverflow.com/questions/37253571/spring-data-jpa-difference-between-findby-findallby by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] SpringApplication.run main 메소드 (0) | 2019.03.13 |
---|---|
[SPRING] Spring 보안은 HttpSecurity를 사용하여 url과 메소드에 대한 요청을 승인한다. (0) | 2019.03.13 |
[SPRING] 어떻게 Mockito가 주입 된 모의 객체의 메소드에 전달 된 인수를 캡처 할 수 있습니까? (0) | 2019.03.13 |
[SPRING] PageRequest 생성자가 더 이상 사용되지 않습니다. (0) | 2019.03.13 |
[SPRING] XML 스키마 네임 스페이스 용 Spring NamespaceHandler를 찾을 수 없음 [http://www.springframework.org/schema/security] (0) | 2019.03.13 |