작성
·
1.7K
0
안녕하세요, 영한 선생님. 강의 늘 즐겁게 잘 듣고 있습니다.
다름이 아니라, nativeQuery 를 querydsl로 수정하는 부분에서 질문이 있습니다.
querydsl 에서 Qclass 는 StringPath 타입으로 변수를 가져와서 order.toString 으로 변환할 수가 없어서
해결을 못하고 있습니다... 이런 경우 어떤 식으로 해야하는지 여쭤봐도 될까요..?
현재 테이블이 실무에서 사용하는 테이블인데 애초에 order 를 String 이 아니라 number로 설계를 했어야했는데,
테이블을 수정하지 않은채 짜는 방법이 궁금해 여쭤봅니다!!
좋은 강의 늘 감사합니다! ㅎㅎ
EmployeeRank {
String name;
String order;
String department;
}
nativeQuery
: update EmployeeRank
set
order = to_char(to_number(order)-1)
where
to_number(order) > to_number( :order) ;
제가 생각하는 querydsl (:order 은 input 변수로 들어옵니다)
queryfactory
.update(employeeRank)
.set(employeeRank.order, String.valueOf(Integer.parseInt(:order)-1))
.where(???)
.execute();
답변 1
1
안녕하세요. Kyung Lin님
다음 코드를 참고해주세요.
queryFactory.update(member)
.set(member.username, member.username.castToNum(Integer.class).add(10).stringValue())
.where(member.username.castToNum(Integer.class).gt(3))
.execute();
감사합니다.