Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
themeEmacs
title사용예
List<AddressStatistics> addressStaticByRegion = addressRepo.findRegionAvgage(10,49);
// 결과
//대구 51.40
//마산 57.20
//부산 54.13
//서울 66.75
//제주 54.69
//창원 58.12


Order BY

지금까지 SELECT구문의 몇가지 예제를 살펴보았습니다. 그런데 그 결과 레코드는 어떠한 순일까요?

그것은 딱히 정해진 규칙없이 DBMS에따라 다르게 작동이됩니다. 어떠한 규칙에(입력순서,빠르게처리되는순서) 의해 작동될수도 있지만

DBMS의 처리순서 규칙을 어렵게 알아내었다고 해도  상황에따라 달라질수도 있기때문에

순서를 보장받으려면 명시적으로 지정을 하여야 합니다. 


SQLJPA

select
*
from
Address
where
generatedAlias0.sex=:param0

order by

age asc,
address 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 어노테이션을 통해 쿼리문 수행이 가능합니다.