작성
·
4.1K
0
코드 테이블을 사용하지 않고 enum을 활용하고 있었습니다.
post entity에 다음과 같이 사용중 입니다.
@Column(length = 30,nullable = false)
@Enumerated(EnumType.STRING)
private PostStatus status;
PostStatus enum
RECEIPT("접수대기",1),
EXAMINATION("접수",2),
IN_PROGRESS("진행",3),
COMPLETED("완료",4),;
private String title;
private int seq;
이런식으로 되어있는데요.
Querydsl에서 저 post.status로 code는 당연히 뽑아지지만 저 title을 가져오지를 못하더군요.
join? converter? 검색을 해봐도 마땅히 방법을 모르겠어서 문의 드립니다.
간단하게 게시판 내 status 별 counting을 하는 query였습니다.
List<Tuple> QueryResult = jpaQueryFactory
.select(post.status, post.count())
.from(post)
.where(
eqAdminUserCompanyTypeMap(usergroup)
)
.groupBy(post.status)
.fetch();
Map<String, Long> returnMap = new HashMap<>();
for (Tuple tuple : QueryResult) {
returnMap.put(tuple.get(0,String.class), tuple.get(1,Long.class));
}
바쁘시겠지만 답변주시면 큰 도움될것같습니다.
답변 1
4
안녕하세요. bk11001님
Querydsl은 PostStatus 타입을 조회하는 것 까지만 지원합니다.
title은 자바 코드로 조회하셔야 해요.
Querydsl로 조회 할 때 PostStatus 타입으로 조회하고, 데이터를 뿌리는 곳에서, status.title 이렇게 출력해주시면 됩니다. :)