net.sf.hibernate.PropertyValueException:not-null属性引用null或transient值

时间:2014-10-28 08:05:22

标签: hibernate java-7 hibernate-mapping weblogic11g

我正在尝试设置' Level'有一些价值但我得到例外。以下是版本和代码。

Hibernate版本:2.1

服务器:Weblogic 11g

映射文件:

 <property name="Level" type="java.lang.Integer">
 <meta attribute="default-value">new java.lang.Integer(0)</meta>    
 <column name="Level" not-null="true" length="3" />    
 </property>

代码:

public Pol fillPol(ResultSet rs) throws SQLException {
      Pol p = new Pol();
      p.setLevel(new Integer(rs.getInt("setLevel")));
      if (rs.IsNull()) {
          p.setLevel(null);
      }
      return p;
  }

我得到的例外

Caused by: net.sf.hibernate.PropertyValueException: not-null property references a null or transient value

请帮忙。

1 个答案:

答案 0 :(得分:0)

那是因为你有一个DB&lt; - &gt; Java数据类型不匹配。

要解决此问题:

  • DB列。如果允许它具有空值。
  • Java类型。如果它是 原始类型与否。

尝试以下方法:

  public Pol fillPol(ResultSet rs) throws SQLException {
      Pol p = new Pol();
      p.setLevel(new Integer(rs.getInt("setLevel")));
      if (rs.IsNull()) {
          p.setLevel(Integer.valueOf(0)); //according to the mapping you're not setting it to null, but to zero.
      }
      return p;
  }