Java
JPA QueryDSL - 쿼리 함수 정리
sinabeuro
2024. 2. 12. 14:16
728x90
JPAQueryFactory 함수
select() - 조회할 컬럼 지정
- select( entity.variable 명, entity.variable 명)
- selectFrom() - 조회할 컬럼 전체 및 from 테이블 entity 지정
- seledtFrom( entity 인스턴스명)
as() - 컬럼 alias 함수
from() - 조회 대상 테이블
- from(centerStockOutMaster)
join() - join 할 테이블 지정
- join(saleBusinessPlaceMaster)
- leftJoin() - left join 할 테이블 지정
- rightJoin() - 사용하지 말자
- innerJoin() - join()과 동일
- on() - join 시 join 테이블에 매핑되는 컬럼 정의
- on(centerStockOutMaster.storeCode.eq(saleBusinessPlaceMaster.businessPlaceCode))
where() - 조건절
- where(centerStockOutMaster.stockOutStatusCode.`in`(stockOutStatusCodeIn))
- and() - 조회 조건이 여러개일 경우 and() 함수 사용
- .and(centerStockOutMaster.receiveOrderSeperateCode.notIn(receiveOrderSeperateCodeNotIn))
.and(centerStockOutMaster.stockOutTobeYmd.goe(condition1))
- .and(centerStockOutMaster.receiveOrderSeperateCode.notIn(receiveOrderSeperateCodeNotIn))
- eq() - 등호와 같음
- gt() - ">" 와 같음
- lt() - "<" 와 같음
- goe() - ">=" 와 같음
- loe() - "<=" 와 같음
- ne() - "<>" 와 같음
- `in`() - in 절
- in에 들어가는 값은 배열형태로 선언 후 지정 ( var stockOutStatusCodeIn = arrayListOf("2", "3"))
- notIn() - not in 절
- in과 동일하게 배열형태로 선언 후 지정
- between() - between
- centerStockOutMaster.centerCode.between(centerStockOutRequestDto.fromCenterCode, centerStockOutRequestDto.toCenterCode)
orderBy() - 특정 컬럼 기준 정렬시 사용. 여러개인 경우 orderBy()를 여러번 사용하면 된다. (다른 좋은 방법 있는지 확인 필요)
groupBy() -특정 컬럼 기준 grouping시 사용. 여러개인 경우 groupBy()를 여러번 사용하면 된다. (다른 좋은 방법 있는지 확인 필요)
case when
- `when`(), then(), otherwise() 로 구현
subquery
- select, from, where 절에 subquery 사용 가능
- subquery를 사용하려면 JPAExpressions.select() 로 사용
concat() - 문자열 concatenation 함수
max() - max() 함수
min() - min() 함수
count() - count 함수
DB 내장함수 사용
- Expressions.stringTemplate 등을 사용
- fetchJoin() - join 테이블 데이터를 한번에 가져오는 함수. oms 프로젝트에서는 사용하지 않는것이 바람직함
Oracle 내장함수/기능 중 사용불가
- Oracle Hint - addFlag 함수가 이전에 존재하였는데 없어짐. 확인 필요
- DECODE 함수 - case when 으로 변경하여 개발 필요
728x90