findAll을 하면서 Orderby를 할 필요가 있었다.
https://docs.spring.io/spring-data/jpa/docs/2.3.3.RELEASE/reference/html/#jpa.repositories
And | findByLastnameAndFirstname | … where x.lastname = ?1 and x.firstname = ?2 |
Or | findByLastnameOrFirstname | … where x.lastname = ?1 or x.firstname = ?2 |
Is, Equals | findByFirstname,findByFirstnameIs,findByFirstnameEquals | … where x.firstname = ?1 |
Between | findByStartDateBetween | … where x.startDate between ?1 and ?2 |
LessThan | findByAgeLessThan | … where x.age < ?1 |
LessThanEqual | findByAgeLessThanEqual | … where x.age <= ?1 |
GreaterThan | findByAgeGreaterThan | … where x.age > ?1 |
GreaterThanEqual | findByAgeGreaterThanEqual | … where x.age >= ?1 |
After | findByStartDateAfter | … where x.startDate > ?1 |
Before | findByStartDateBefore | … where x.startDate < ?1 |
IsNull, Null | findByAge(Is)Null | … where x.age is null |
IsNotNull, NotNull | findByAge(Is)NotNull | … where x.age not null |
Like | findByFirstnameLike | … where x.firstname like ?1 |
NotLike | findByFirstnameNotLike | … where x.firstname not like ?1 |
StartingWith | findByFirstnameStartingWith | … where x.firstname like ?1 (parameter bound with appended %) |
EndingWith | findByFirstnameEndingWith | … where x.firstname like ?1 (parameter bound with prepended %) |
Containing | findByFirstnameContaining | … where x.firstname like ?1 (parameter bound wrapped in %) |
OrderBy | findByAgeOrderByLastnameDesc | … where x.age = ?1 order by x.lastname desc |
Not | findByLastnameNot | … where x.lastname <> ?1 |
In | findByAgeIn(Collection<Age> ages) | … where x.age in ?1 |
NotIn | findByAgeNotIn(Collection<Age> ages) | … where x.age not in ?1 |
True | findByActiveTrue() | … where x.active = true |
False | findByActiveFalse() | … where x.active = false |
IgnoreCase | findByFirstnameIgnoreCase | … where UPPER(x.firstame) = UPPER(?1) |
위 사이트에 친절히 안내가 돼 있어서
findAllOrderByIdDesc()
로 만들었는데 오류가 뜨는 것이었다.
어쩔 수 없이
@Query를 @Query("SELECT b FROM Board b ORDER BY b.id DESC") 이렇게 작성하니 실행이 되었다.
그런데 문득..
저렇게 내가 적을 것이라면 JPA를 쓸 필요가 없는 거 아닌가?
라는 의문이 들어 google에 물어보니
친절히 findAll에 OrderBy를 하기 위해서는 이름을
findAllByOrderBy???desc로 지으면 된다는 답을 들을 수 있었다.
따라서
List<Board> findAllByOrderByIdDesc();
이렇게 만들어 해결할 수 있었다.
그런데 생각해보니 join도 써야 하고, limt랑 offset도 설정해야 해서
결국은 @Query를 써야 할 거 같다.
'프로젝트관련 > 콜렉트 미스터 텅' 카테고리의 다른 글
페이지네이션? (0) | 2023.06.15 |
---|---|
JPA - Pageable (0) | 2023.06.13 |
숙원사업 하나 해결 (0) | 2023.06.12 |
페이지네이션 (0) | 2023.06.12 |
db설치(?) (0) | 2023.06.12 |