https://jojoldu.tistory.com/396
private List<ItemSimpleDto> fetchAll(Predicate predicate, Pageable pageable) {
List<ItemSimpleDto> itemSimpleDtos = getQuerydsl().applyPagination(
pageable,
jpaQueryFactory
.select(constructor
(
ItemSimpleDto.class,
item.id,
item.name,
item.type,
item.itemNumber,
item.width,
item.height,
item.weight,
item.member.username,
itemMaterial.material.name,
//itemMaterial.material.name,
item.color.color,
image.imageaddress,
attachment.attachmentaddress,
item.createdAt
)
)
.from(item)
//.join(itemMaterial).on(item.id.eq(itemMaterial.item.id))
.join(itemMaterial).on(item.id.eq(itemMaterial.item.id))
//jqpl은 연관관계 없으면 직접 못하고 join on으로 해줘야 함
.join(image).on(item.id.eq(image.item.id))
.join(attachment).on(
item.id.
eq(attachment.item.id).
and(attachment.deleted. //삭제 안된 파일만 보여주기
eq(false))
)
.join(item.color) //아이템 색깔 조회 위해 Color와 조인
.join(item.member) //아이템 작성자 닉네임 조회 위해 Member와 조인
.where(predicate)
.orderBy(item.id.desc())
).fetch(); //리스트 반환
return itemSimpleDtos;
}