• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

캐스팅 관련 질문드리고 싶습니다!

21.07.29 15:01 작성 조회수 1.3k

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();

감사합니다.