인프런 커뮤니티 질문&답변
벌크연산시, 소수점은 반영이 안되나요?
작성
·
501
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();
감사합니다.





