论坛首页 Java企业应用论坛

在已有的数据表的基础上建立XML MAP的问题

浏览 4629 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-09-19  
我要使用hibernate做开发,但是我需要使用以前已经存在的数据表,该表中的一些字段为整型,但不是关键字,因此有些记录的这些字段没有内容,我使用的是oracle数据库,我建立了对应的hbm.xml文件,将这些字段类型设置为integer,创建对应的java文件,可是当我查询到这些记录时,程序出现异常,为空指针错误,我仔细的分析了debug信息,发现这些字段在从数据库中读出的值为null , 而我的java文件中是
public setXXX(int a) {
}
我猜想是在创建对象时错误,一种解决方法时将没有信息的这些整型字段补零,我试验过,没有问题。如果我不想使用这种方法,还有其他解决方法吗?最好时hibernate自己提供的。
我做了测试,如果我使用hibernate来创建对象,并不对这些对象赋值,系统自动补零。

多多希望高手指点。谢谢。
   发表时间:2003-09-19  
仔细看看这里,有解决你的问题的办法。

http://hibernate.fankai.com/viewtopic.php?t=260
0 请登录后投票
   发表时间:2003-09-20  
我找到答案了,在hibernate 的FAQ中
Hibernate throws a PropertyAccessException or NullPointerException when I load or query an object!
A PropertyAccessException often occurs when the object being passed to the setter method is of the wrong type. Check your type mappings for the offending property. (To see exactly which property was the problem, you might need to disable the CGLIB reflection optimizer.) However, the most common cause of this problem is that Hibernate attempted to assign null to a property of primitive type.

If your object has a primitive-type property mapped to a nullable database column then you will need to use a Hibernate custom type to assign a sensible default (primitive) value for the case of a null column value. A better solution is usually to use a wrapper type for the Java property.

多谢斑竹的回答,谢谢
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics