반응형
이번 프로젝트에서 가장 최근 데이터 N개를 가져오는 API를 만들어야 했다.
물론 당연히 쉬운 일이다.
그냥 DB에서 최근 데이터 N개 이렇게 가져오면 되는 일이었다.
옛날의 나였으면 QueryDSL로 10분 안에 만들었겠지만, 이번엔 독립을 선언했으니 JPA or JPQL만을 사용해서 해당 API를 만들어보자.
처음에는 그냥 JPQL로 Limit을 넣어서 빠르게 만들자는 생각이었는데...
JPQL에서 Limit을 지원하지 않는다고 한다.
nativeQuery를 사용하던가, 아니면 전체 데이터를 불러와서 그 중에 6개를 가져오던가 이 방법들을 생각해보았는데
nativeQuery를 사용하면 ORM을 쓰는 의미가 없고, 전체 데이터를 불러오면 너무 느릴 것 같아서 보류하고 있었는데
해답은 JPA에 있었다.
뭔가 JPA는 느리다?는 선입견 때문에 이 쪽을 나중에 찾아보게 된다.
List<ProjectEntity> findTopBy();
이렇게 TopBy를 사용하는 것이다.
해당 JPA를 사용하면 뒤에 정렬방식에 해당하는 정렬 이후 위의 데이터 N개를 가져올 수 있다.
나는 이 JPA를 사용해서
List<ProjectEntity> findTop6ByOrderByCreatedAtDesc();
이렇게 작성을 하고 가장 최근의 6개의 데이터를 가져올 수 있었다.
'블로그 개발 프로젝트' 카테고리의 다른 글
CORS Error (0) | 2023.07.28 |
---|---|
JPA으로 Paging (0) | 2023.07.24 |
@ManyToOne, @OneToMany (0) | 2023.07.24 |
Swagger 작성 (0) | 2023.07.24 |
스프링 초반 구조 설계 (0) | 2023.07.20 |