인프런 커뮤니티 질문&답변

안준석님의 프로필 이미지
안준석

작성한 질문수

실전! Querydsl

벌크연산시, 소수점은 반영이 안되나요?

작성

·

456

0

안녕하세요
벌크연산에서 multiply나 devide를 사용하면서
전체 임금 30프로 인상이나 삭감등의 경우를 연습해보고있는데요,
queryFactory
.update(member)
.set(member.salary, member.
salary.multiply(1.3))
.execute()
;
코드가 다음과 같은 경우,
update member set salary=salary*1;
이런 쿼리가 나가는 것을 확인하였고,
multiply와 devide함수가 받는 파라미터 정보를 보니
NumberExpression<Integer>
이렇게 되어있는데, 아마 받는 파라미터가 Integer로 정의되어있어서
소숫점은 버려지는것이 아닌가 싶습니다.
이런경우 받는 파라미터를 Double형으로 바꿔주면 해결이 될것 같은데,
어떤식으로 바꿀수가 있을까요?
아니면 다른 해결방법이 있을까요?

답변 1

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 안준석님

다음과 같이 해보시면 될거에요.

query.update(member)
.set(member.salary, member.salary.doubleValue().multiply(1.3).intValue())
.execute();

감사합니다.

안준석님의 프로필 이미지
안준석

작성한 질문수

질문하기