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 閱讀(1369) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 渭源县| 墨江| 通海县| 延安市| 黎平县| 萝北县| 色达县| 常山县| 专栏| 石阡县| 定日县| 桃江县| 永仁县| 剑阁县| 时尚| 南华县| 楚雄市| 金坛市| 镶黄旗| 嘉禾县| 杭州市| 同德县| 南投县| 葫芦岛市| 余江县| 万宁市| 鄱阳县| 卓资县| 青海省| 岚皋县| 澄迈县| 杭锦旗| 瓮安县| 磐安县| 青海省| 宁陵县| 武强县| 武冈市| 武乡县| 衡山县| 衡阳县|