본문 바로가기
프로젝트관련/콜렉트 미스터 텅

JPA - findAllByOrderByIdDesc

by 자비리뷰 2023. 6. 13.

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