SSH實戰 · 用spring框架下的hibernatetemplate的get方法出現的問題


用get方法查詢:
      return this.getHibernateTemplate().get(Product.class, pid);
出現錯誤為:id to load is required for loading···
    
     很多人說是數據庫有字段設置了not null,所以在更新數據的時候由於有些字段是null,所以報錯。仔細查看了數據庫,並沒有not null的設置。其實原因出在get(Product.class,pid)這個方法上。
    因為參數id在Dao中是序列化字段,但是在執行SQL查詢的時候並沒有給id賦值,所以在執行get()方法的時候就直接是null了。
    修改bug :除了使用hibernatetemplate的get()方法進行數據庫查詢,還可以使用find()方法直接進行HQL查詢,但是fing返回的是一個字符串,事實上是一個ArrayList串。所以在進行fing()操作的時候,應該要返回List類型的POJO類泛型結果,不然就會出現HTTP Status 500 -  Java.util.ArrayList的錯誤了。
代碼修改如下:
          String hql = "from Product where pid=?" ;
          List < Product > list = this. getHibernateTemplate () . find ( hql , pid ) ;
           if ( list != null && list . size () > 0 ){
               return list . get ( 0 ) ;
           }
           return null;
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM