반응형

1. DATE_FORMAT() 사용하기

, ExpressionUtils.as(
			Expressions.stringTemplate(
					"DATE_FORMAT({0}, {1})"
					, accountLog.logTime
					, ConstantImpl.create("%Y-%m-%d %H:%i:%S.%f")).substring(0, 23)
, "_logTime")

ExpressionUtils.as([Expressions], [Alias])를 통해서 select 쿼리 시 해당 필드가 날짜 형식일 경우 다음과 같이 원하는 포맷형태로 변경 가능하다.

 

2. 다른 테이블 데이터 조회 결과 sub query

, ExpressionUtils.as(
					JPAExpressions.select(group.groupName)
					.from(group).where(group.groupId.eq(accountLog.assignedGroupId))
					, "assignedGroupName")

JPAExpressions.select 메서드를 사용하여 해당 필드 조건에 해당하는 다른 테이블의 데이터를 조회해서 필드를 정의 할 수 있다.

3. when ~ case문 사용하여 sub query 사용하기

JPAExpressions.select(
  new CaseBuilder().when(clientDeleteWeb.idx.count().gt(0))
                   .then("Y")
                   .otherwise("N"))
              .from(clientDeleteWeb)
              .where(clientDeleteWeb.groupId.eq(client.groupIdx.groupId)
              .and(clientDeleteWeb.uid.eq(client.uid)));

jpa에서는 일반적인 rdb query 작성시 사용하는 when case 문법을 CaseBuilder() 메서드를 사용해서 구현 가능하다.

728x90

+ Recent posts