openSession
: আপনি যখন কল করবেন তখন SessionFactory.openSession
এটি সর্বদা একটি নতুন Session
অবজেক্ট তৈরি করে এবং আপনাকে দেয়।
আপনাকে এই সেশন অবজেক্টগুলিকে স্পষ্টভাবে ফ্লাশ এবং বন্ধ করতে হবে।
অধিবেশন বস্তু হিসাবে না শংকা মুক্ত, আপনি বহু-থ্রেডেড পরিবেশে প্রতি অনুরোধ এক অধিবেশন বস্তু এবং খুব ওয়েব অ্যাপ্লিকেশন অনুরোধ প্রতি এক অধিবেশন তৈরি করতে হবে।
getCurrentSession
: আপনি যখন কল করবেন তখন SessionFactory.getCurrentSession
এটি আপনাকে সেশন অবজেক্ট সরবরাহ করবে যা হাইবারনেট প্রসঙ্গে এবং অভ্যন্তরীণভাবে হাইবারনেট দ্বারা পরিচালিত। এটি লেনদেনের সুযোগে আবদ্ধ।
আপনি যখন কল করবেন তখন SessionFactory.getCurrentSession
এটি একটি নতুন তৈরি করে Session
যদি এটি বিদ্যমান না থাকে, অন্যথায় একই সেশনটি ব্যবহার করুন যা বর্তমান হাইবারনেট প্রসঙ্গে রয়েছে। লেনদেন শেষ হলে এটি স্বয়ংক্রিয়ভাবে ফ্লাশ হয় এবং সেশনটি বন্ধ করে দেয়, সুতরাং আপনাকে বাহ্যিকভাবে এটি করার দরকার নেই।
আপনি যদি একক থ্রেডযুক্ত পরিবেশে হাইবারনেট ব্যবহার করছেন তবে আপনি ব্যবহার করতে পারবেন getCurrentSession
, কারণ প্রতিবার একটি নতুন সেশন তৈরি করার তুলনায় এটি কার্য সম্পাদনে দ্রুততর।
পদ্ধতিটি ব্যবহারের জন্য আপনাকে হাইবারনেট সিএফজি.এক্সএমএলগুলিতে নিম্নলিখিত সম্পত্তি যুক্ত করতে হবে getCurrentSession
:
<session-factory>
<!-- Put other elements here -->
<property name="hibernate.current_session_context_class">
thread
</property>
</session-factory>
openSession()
বা করেন নাclose()
। তিনি কেবল ডাকেনgetCurrentSession()
। সে সেট করে অনুমানcurrent_session_context
করতেthread
। এখন আমার মনে হয় আমি বুঝতে পেরেছিgetCurrentSession()
। তবে আমার কখন ব্যবহার করা উচিত তা আমি জানি নাopenSession()
।