• org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of xxx类


    如果在使用hibernate的时候出现【org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of xxx类】这样的错误信息,原因一般都是因为数据库中表字段对应的数据与该字段预设的数据类型不一致导致的,比如数据库表字段的数据类型为Numeric(20, 6),但是保存的值却是NULL,这时候去取该字段的值到Java中相对应的简单类型字段中(简单类型字段不支持Null值),就会报该错。

    解决的办法有两个:

    一个是把实际数据的数据类型和表字段的数据类型调整成数据类型一样的即可,比如当该字段为Null的时候,给其赋初值0,就能有效避免这个错误;

    if (yanggb == null) {
        yanggb = 0;
    }

    另一个就是使用Java中提供的包装类型,包装类型支持Null值,并能自动拆箱成简单类型,一般是建议使用这个方法。

    private Double yanggb; // java.lang.Double,为double的包装类型
    <property name="yanggb" type="java.lang.Double" column="yanggb" length="256"/>

    注意这里的类型必须填写java.lang.Double,而不能像简单类型那样直接填写double。

    "有些人路过了, 就真的路过了。"

  • 相关阅读:
    ERRORCODE=4228, SQLSTATE=null
    DB2和Oracle中唯一约束和唯一索引对比
    SW 3D 样条曲线
    SW 快速操作
    spring依赖注入的方式(一)
    Oracle Connect By的用法
    转:min(x,y)高效算法
    【转】QQ盗号核心编程
    转:理解并解决GBK转UTF8奇数中文乱码
    Oracle数据库的导入和导出命令
  • 原文地址:https://www.cnblogs.com/yanggb/p/12438882.html
Copyright © 2020-2023  润新知