1. 程式人生 > >Hibernate5教程之二openSession和getCurrentSession

Hibernate5教程之二openSession和getCurrentSession

在Hibernate中有2個方法特別容易搞混,那就是SessionFactory中的openSession和getCurrentSession。
如果使用openSession,那麼每次呼叫都會建立Session物件,而且只需要在使用update或delete方法時,需要開啟事物。save、get、load等無需開啟事物即可執行。
而我們使用getCurrentSession的時候,那麼會麻煩一點。
首先需要在全域性配置中新增

<!-- 啟用getCurrentSession,預設未啟用 -->
        <property name="hibernate.current_session_context_class"
>
thread</property>

以便在專案中使用getCurrentSession,否則會引發異常
其次我們需要開啟事物,無論get、load、save、update、delete等都必須開啟事物,否則會報沒有活躍的事物異常。
最後使用getCurrentSession的好處就是一個執行緒只有一個Session物件,大大的減少了Session物件建立次數。