1. 程式人生 > >hibernate框架的理解重點

hibernate框架的理解重點

/*
 * sessionFactory.openSession() 資料操作過程中:
 *                 使用save,update,delete方法時 需要開啟事務   執行commit方法 事務要手動斷臂
 *                 執行查詢 load/get 不需要開啟事務
 *
 *  
 * sessionFactory.getCurrentSession()的使用:
 *                  需要配置當前事務: <property name="hibernate.current_session_context_class">thread</property>
 *                 session必須在事務環境下使用,save,update,delete,方法  load/get 都需要開啟事務   Transaction tx=session.beginTransaction();
 *                 事務執行commit/rollback完畢,session自動關閉,不需要手動關閉session
 *

 */

/*
 * 一級快取:基於事務的快取,基於session會話的
 * 資料在執行查詢的過程中,如果一級快取資料存在,不會發送select語句到資料庫
 * 快取清除:session.clear() 清除當前session的所有資料
 *        session.evict() 對指定的物件的快取進行清除

//    //Hibernate執行修改操作:先查詢再修改 

可以將資料庫中的資料物件查詢出來之後,直接修改物件的屬性,然後提交事務即可 

原因:當事務提交時會將session物件中的快取與資料庫對比,當兩者不同時,會將快取中的資料直接儲存到資料庫中,不需要再執行資料庫的update語句

 */

/*
        * get():當查詢到id不存在時,返回null,不會發生異常資訊
          load():當查詢到id不存在時,報異常資訊

        */