Page History
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
List<AddressStatistics> addressStaticByRegion = addressRepo.findRegionAvgage(10,49); // 결과 //대구 51.40 //마산 57.20 //부산 54.13 //서울 66.75 //제주 54.69 //창원 58.12 |
Order BY
지금까지 SELECT구문의 몇가지 예제를 살펴보았습니다. 그런데 그 결과 레코드는 어떠한 순일까요?
그것은 딱히 정해진 규칙없이 DBMS에따라 다르게 작동이됩니다. 어떠한 규칙에(입력순서,빠르게처리되는순서) 의해 작동될수도 있지만
DBMS의 처리순서 규칙을 어렵게 알아내었다고 해도 상황에따라 달라질수도 있기때문에
순서를 보장받으려면 명시적으로 지정을 하여야 합니다.
SQL | JPA |
---|---|
select order by age asc, | public interface AddressRepo extends CrudRepository<Address, Long>{ List<Address> findBySex(String sex, Sort sort); List<Address> findBySexOrderByAgeDesc(String sex); ... 사용예> addressRepo.findBySex("남", new Sort(Sort.Direction.ASC, "age","address") ); – ASC : 오름차순 , DESC : 내림차순 |
Sort의 경우 가변적인 인자값으로 활용될수 있기때문에, 복합 Sort옵션 지정이 가능한 Sort객체를 사용하였습니다.
만약 순서를 옵션없이 고정하고 싶으면 ,OrderByAgeDesc 와같이 JPA함수쿼리 네이밍을 하면 됩니다.
SQL문으로 처리하고 싶으면, 앞장에서 배운 @Query 어노테이션을 통해 쿼리문 수행이 가능합니다.