
그동안에는 Repository에서 Entity를 가져온 후,
Entity를 DTO로 변환해서 DTO를 응답에 사용했습니다.
만약, Entity의 Column이 많아지고
DTO에서는 적은 필드만을 가질 경우에는
Repository에서 직접 DTO를 받는게 좋지 않을까요?
@Override
public List<Auction> findAllByFilters(
List<Long> neighbor,
StatusEnum status,
String title
) {
return queryFactory.selectFrom(auction)
.where(auction.townId.in(neighbor),
eqStatusAndContainsTitle(status, title))
.orderBy(auction.createdAt.desc())
.fetch();
}

@Override
public List<AuctionListResponseDto> findAllByFilters(
List<Long> neighbor,
StatusEnum status,
String title
) {
return queryFactory.select(Projections.fields(AuctionListResponseDto.class,
auction.id.as("auctionId"),
auction.title,
auction.status,
auction.user.nickname,
auction.finishedAt,
auction.file.filePath,
auction.price
))
.from(auction)
.where(auction.townId.in(neighbor),
eqStatusAndContainsTitle(status, title))
.orderBy(auction.createdAt.desc())
.fetch();
}
