我正在尝试设置' 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
请帮忙。
答案 0 :(得分:0)
那是因为你有一个DB&lt; - &gt; 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;
}