openSession: Aradığınızda SessionFactory.openSessionher zaman yeni birSession nesne ve size verir.
Bu oturum nesnelerini açıkça temizlemeniz ve kapatmanız gerekir.
Oturum nesneleri olmadığından iş parçacığı güvenli , çok iş parçacıklı ortamda istek başına bir oturum nesnesi ve web uygulamalarında da istek başına bir oturum oluşturmanız gerekir.
getCurrentSession: Aradığın zaman SessionFactory.getCurrentSession , size hazırda bekletme bağlamında olan ve dahili olarak hazırda bekletme ile yönetilen oturum nesnesi sağlayacaktır. İşlem kapsamına bağlıdır.
Aradığınızda SessionFactory.getCurrentSessionyeni birSession yoksa , aksi takdirde mevcut hazırda bekletme bağlamında olan aynı oturumu kullanın. İşlem bittiğinde oturumu otomatik olarak temizler ve kapatır, böylece bunu harici olarak yapmanız gerekmez.
Tek iş parçacıklı ortamda hazırda bekletme kullanıyorsanız getCurrentSession, her seferinde yeni bir oturum oluşturmaya kıyasla performans açısından daha hızlı olduğu için kullanabilirsiniz .
Yöntemi kullanmak için hibernate.cfg.xml dosyasına aşağıdaki özelliği eklemeniz gerekir getCurrentSession:
<session-factory>
<!-- Put other elements here -->
<property name="hibernate.current_session_context_class">
thread
</property>
</session-factory>
openSession()veya aramıyorclose(). Sadece arıyorgetCurrentSession(). Onun setleri tahmincurrent_session_contextetmekthread. Şimdi anladığımı düşünüyorumgetCurrentSession(). Ancak ne zaman kullanmam gerektiğini bilmiyorumopenSession().