কম্পিউটার টিউটোরিয়াল

স্প্রিং জাভাতে save() এবং saveAndFlush()-এর পার্থক্য

save() এবং saveAndFlush() উভয়ই এন্টিটি সংরক্ষণের জন্য ব্যবহৃত হয়। উভয়ই Spring Data লাইব্রেরির। save() কল করলে পরিবর্তনগুলো ডেটাবেসে সোজা লেখা হয় না; saveAndFlush() কল করলে সিস্টেম আপনার মডেল স্টেটকে ডেটাবেসের সাথে সিঙ্ক্রোনাইজ করতে বাধ্য করে।

save() এবং saveAndFlush()-এর তুলনা

ক্রমিক নং বিষয় save() saveAndFlush()
১ রিপোজিটরি CrudRepository-এ থাকে JpaRepository-এ থাকে
২ ডেটা ফ্লাশ Страটেজি এক্সপ্লিসিটলি flush() এবং commit() কল না করা পর্যন্ত ডেটাবেসে ফ্লাশ করে না সোজা ডেটাবেসে ডেটা ফ্লাশ করে
৩ বাল্ক সেভ CrudRepository বাল্ক সেভ মেথড প্রদান করে saveAndFlush() বাল্ক অপারেশন সাপোর্ট করে না
৪ সেভ করার পর ডেটা দৃশ্যমানতা ডেটাবেসে সরাসরি ফ্লাশ করে না, তাই ট্রানজ্যাকশনের বাইরে পরিবর্তন দৃশ্যমান হয় না (commit() কল না করা পর্যন্ত) ট্রানজ্যাকশনের বাইরেও পরিবর্তন দৃশ্যমান হয়
৫ ইউজ কেস সেম ট্রানজ্যাকশনে পরে সেভড পরিবর্তন ব্যবহার না করলে সেম ট্রানজ্যাকশনে পরে সেভড পরিবর্তন ব্যবহার করলে

প্রায়োগিক দিকনির্দেশনা

  • সাধারণ CRUD অপারেশনের জন্য save() ব্যবহার করুন
  • যদি সেভ করার সাথে সাথে ডেটাবেসে পরিবর্তন প্রতিফলিত করতে হয় (যেমন: অন্য ট্রানজ্যাকশন থেকে পড়তে হয়, আইডি জেনারেশন, কনস্ট্রেইন্ট ভ্যালিডেশন) তবে saveAndFlush() ব্যবহার করুন
  • বাল্ক অপারেশনের জন্য saveAll() ব্যবহার করুন
  • ট্রানজ্যাকশন ম্যানেজমেন্টের জন্য @Transactional অ্যানোটেশন ব্যবহার করুন
  1. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  2. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  3. স্প্রিং জাভাতে save() এবং saveAndFlush()-এর পার্থক্য

  4. জাভাতে ArrayList এবং HashSet-এর পার্থক্য