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。

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

  • 相关阅读:
    Restful API 指南
    git submodule 使用小结
    git 在 A 项目中引用 B 项目
    Error Permission denied when running brew cleanup
    @Scope注解设置创建bean的方式和生命周期
    spring常用注解
    Spring的AOP配置文件和注解实例解析
    java线程的状态
    java线程执行的优先级
    java创建线程的方法
  • 原文地址:https://www.cnblogs.com/yanggb/p/12438882.html
Copyright © 2011-2022 走看看