zoukankan      html  css  js  c++  java
  • expected type: java.lang.Double, actual value: java.math.BigDecimal

    使用Hibernate的时候报【expected type: java.lang.Double, actual value: java.math.BigDecimal】这样的错,是因为在Hibernate中Java和数据库中定义的数据类型映射没有对应上的原因。

    具体是,在Java类中定义的是Double类型,而数据库(SQL Server)中定义的是numeric(decimal)类型,而Hibernate对数据库中(SQL Server)的numeric(decimal)类型在Java中的映射是BigDeciaml类型,映射没有对应上也就导致了给该字段赋相同类型的值失败,也就产生了上面的报错信息。

    解决的办法一般有两个,一个是将数据库(SQL Server)中的类型转为float类型,这种方式只适用于对数值精度不敏感的场景中,因为这个类型会损失一定的精度;另一种办法是在Java类中定义的类型变为BigDecimal类型,但是计算的时候会比较麻烦,因为必须使用BigDecimal类中提供的方法,但是这种方式能有效保证精度。

    "记忆总是在不经意间窜入脑海。"

  • 相关阅读:
    图论算法——最短路系列
    1126 数字统计 2010年NOIP全国联赛普及组
    JavaEE Tutorials (10)
    情书
    洛谷 P1171 售货员的难题
    洛谷 P1769 淘汰赛制_NOI导刊2010提高(01)
    洛谷 P1858 多人背包
    HDU 2639 Bone Collector II
    国庆 day 6 下午
    国庆 day 6 上午
  • 原文地址:https://www.cnblogs.com/yanggb/p/12705485.html
Copyright © 2011-2022 走看看