问题:
oracle数据库中定义一字段为number类型,在hibernate实例化对应到Double类型时,会造成数据不一致。
分析:
number类型不同的长度对应不同的类型:
n>18 java.math.BigDecimal
10<=n<=18 java.lang.Long
1 <=n<=9 java.lang.Integer
解决办法:
使用Bigdecimal类型,并使用
BigdecimalTypeData.setScale(3,BigDecimal.ROUND_HALF_UP).toString()
进行四舍五入截取,得到需要的数据。
String result = this.getSortFinal().setScale(3,BigDecimal.ROUND_HALF_UP).toString();