인프런 커뮤니티 질문&답변

bk11001님의 프로필 이미지

작성한 질문수

실전! Querydsl

Querydsl 에서 enum 상태 명을 조인할 수 있을까요?

작성

·

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 이렇게 출력해주시면 됩니다. :) 

bk11001님의 프로필 이미지

작성한 질문수

질문하기