Post

Tuple

Tuple

Tuple

QueryDsl를 이용해 동적 쿼리를 처리하면서 여러개의 데이터를 받아올 때 Projection 이용하는 방식을 주로 사용했는데 공부하던 책에서는 List 형식의 Tuple를 이용하는 방식도 있었다.

1
2
3
4
List<Tuple> result = queryFactory
    .select(board.user, board.title)
    .from(board)
    .fetch();

여러 데이터을 조회하거나 특정 칼럼들의 데이터를 조회하고 싶을 때 마음대로 커스텀마이징을 할 수 있다는 장점이 있다.
조회 결과는 result.get(board.user)과 같은 형태로 받아온다.
당연 반환할때는 tupleDTO 로 변환해서 반환하는 것이 로직을 구성하는데 편리할 것이다.

그렇기에 프로젝트 규모가 커지면 이런 변환하는 작업들이 개발 및 유지보수를 할 때 불편하고 효율이지 못한 상황을 만들어 낼 것이다.
그래서인지 Projections가 데이터를 select 할때부터 저장되고자 하는 class를 지정하여 칼럼에 맞는 데이터를 바로 넣어 줄 수 있는 특성 때문에 많이 사용하고 있는 것 같다.


This post is licensed under CC BY 4.0 by the author.