JavaServer Faces Study

JSF的一些学习经验与大写分享

统计

留言簿(1)

阅读排行榜

评论排行榜

2008年2月17日 #

Hibernate查询,无数据正常,有数据出现java.lang.NullPointerException 异常

现象
  在使用JSF+Spring+Hibernate时,执行多对一查询时,出现异常!代码如下:

  Hibernate影射文件:
 
<hibernate-mapping>
    
<class name="com.jsfStudy.db.bo.TbPackinginfo" table="tb_packinginfo" catalog="danzhen">
        
<id name="piIdN" type="integer">
            
<column name="pi_id_N" />
            
<generator class="native" />
        
</id>
        
<many-to-one name="tbMakemxd"
            
class="com.jsfStudy.db.bo.TbMakemxd" fetch="select">
            
<column name="pi_mxdId_N" />
        
</many-to-one>
        
<property name="piTaskIdC" type="string">
            
<column name="pi_taskId_C" length="10" unique="true"></column>
        
</property>

           ...

       </class>
</hibernate-mapping>

  java文件:
    public TbPackinginfo findByMxdNo(String mxdNo) throws DataAccessException{
            List list
=getHibernateTemplate().find(Constants.TBPACKINGINFO_FINDBYMXDNO,mxdNo);
            Iterator it
=list.iterator();
                TbPackinginfo pack
= new TbPackinginfo();
            
if(it.hasNext()){
                    pack
=(TbPackinginfo) it.next();
                }

            
return pack;
    }
  如果数据库中没有记录,则一切正常;如果数据库中有记录,则出现java.lang.NullPointerException 异常。
  java.lang.NullPointerException at org.hibernate.tuple.AbstractEntityTuplizer.createProxy

解决方式:
  经在网上搜索后,终于找到解决的方法,现在与大家一起分享!
  1、更改加载方式为立即加载!即在多对一的影射中增加: lazy="false"
 
<hibernate-mapping>
    
<class name="com.jsfStudy.db.bo.TbPackinginfo" table="tb_packinginfo" catalog="danzhen">
        
<id name="piIdN" type="integer">
            
<column name="pi_id_N" />
            
<generator class="native" />
        
</id>
        
<many-to-one name="tbMakemxd"
            
class="com.jsfStudy.db.bo.TbMakemxd" fetch="select"lazy="false">
            
<column name="pi_mxdId_N" />
        
</many-to-one>
        
<property name="piTaskIdC" type="string">
            
<column name="pi_taskId_C" length="10" unique="true"></column>
        
</property>

           ...

       </class>
</hibernate-mapping>

  或者
 
   2、升级cglib_2.1.3.jar至cglib_2.2.jar;
    cglib_2.2_beta1.jar文件下载地址:
    http://sourceforge.net/project/showfiles.php?group_id=56933&package_id=98218&release_id=419752

posted @ 2008-02-17 20:58 Yangjm 阅读(1362) | 评论 (0)编辑 收藏