
이번 글에서는 Querydsl을 사용해 SQL의 함수를 사용하고, 벌크 연산을 처리하는 방법에 대해 알아보겠습니다.
먼저 SQL의 함수를 사용할 때에는 Expressions 객체를 사용합니다. 이걸 이용해 회원이 이름을 변경하는 쿼리를 만들어보겠습니다.
// SQL Function (DB 함수 사용)
@Test
void sqlFunctio1() {
List<String> result = queryFactory
.select(
Expressions.stringTemplate(
"function('replace', {0}, {1}, {2})",
member.username, "member", "M")
)
.from(member)
.fetch();
for (String s : result) {
System.out.println("s = " + s);
}
}
Expressions의 stringTemplate() 매서드를 사용해 DB의 함수를 사용하겠다는 것을 명시하고 원하는 함수를 사용하면 됩니다.
그리고 벌크 연산 처리 방법을 알아볼텐데요, 사실 벌크 연산이라고 해봤자 별 거는 없습니다. 단지 주의점만 하나 있는데요, 바로 벌크 연산 시에는 해당 쿼리 실행 후에는 EntityManager를 이용해 영속성 컨텍스트를 지워야 한다는 것입니다.
다음 글에서는 여지껏 배운 것들로 조회 API 하나를 만들어보겠습니다.
소중한 정보 감사드립니다!