728x90
반응형
- CaseBuilder를 통해 CaseWhen 문법 시작
- when: 조건문
- then: when절이 true일 경우 실행
- otherwise: when절이 false일 경우 실행
- otherwise가 끝나면 결과 물에 대한 alias(as) 적용
- 일반적으로는 Entity의 필드명이 자동으로 as 적용됨
- 하지만 CaseBuilder를 통해 계산한 결과물은 필드명이 없음
- alias 하지 않으면 결과물 필드가 어떤 필드로 가야할지 명시되지 않아 오류가 발생
public List<TnAuthorIExtDTO> selectAuthManageList(Map<String,String> searchInfo) { String searchKeyword = searchInfo.get("searchKeyword"); List<TnAuthorIExtDTO> tnAuthorList = queryFactory .select(Projections.bean(TnAuthorIExtDTO.class, tnAuthorI.authorCode, tnAuthorI.authorNm, tnAuthorI.authorDc, tnAuthorI.regDt, new CaseBuilder() .when(tnAuthorI.useYn.eq("Y")) .then(1) .otherwise(0).as("useYn"), Expressions.asString("롤등록").as("btnRole") )) .from(tnAuthorI) .where(eqAuthorNm(searchKeyword) ) .fetch(); log.debug("tnAuthorList : " + tnAuthorList ); return tnAuthorList; } private BooleanExpression eqAuthorNm(String searchKeyword) { if (StringUtils.isBlank(searchKeyword)) { return null; } return tnAuthorI.authorNm.like("%"+searchKeyword+"%"); }
728x90
반응형
'프로그램 > JPA' 카테고리의 다른 글
JPA 복합키 (0) | 2021.08.05 |
---|---|
no persistence.xml file found in project (0) | 2021.07.22 |
전자정부 표준프레임워크 3.10 (0) | 2021.07.06 |
jboss-web.xml (0) | 2021.07.02 |
web.xml (0) | 2021.07.02 |
댓글