zoukankan      html  css  js  c++  java
  • 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。

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

  • 相关阅读:
    监控里的主码流和子码流是什么意思
    监控硬盘容量计算
    一个能让你了解所有函数调用顺序的Android库
    电工选线
    oracle linux dtrace
    list all of the Oracle 12c hidden undocumented parameters
    Oracle Extended Tracing
    window 驱动开发
    win7 x64 dtrace
    How to Use Dtrace Tracing Ruby Executing
  • 原文地址:https://www.cnblogs.com/yanggb/p/12438882.html
Copyright © 2011-2022 走看看