শারীরিক লেনদেনের প্রসঙ্গে সমস্ত ডাটাবেস বিবৃতি কার্যকর করা হয়, এমনকি যখন আমরা স্পষ্টভাবে লেনদেনের সীমানা ঘোষণা করি না (বিগিন / কমিট / রোলব্যাক)।
আপনি যদি লেনদেনের সীমানা স্পষ্টভাবে ঘোষণা না করেন তবে প্রতিটি বিবৃতি পৃথক লেনদেন ( autocommit
মোড) এ কার্যকর করতে হবে । এটি এমনকি প্রতি বিবৃতিতে একটি সংযোগ খোলার এবং বন্ধ করতে পারে যদি না আপনার পরিবেশ সংযোগ-প্রতি-থ্রেড বাঁধাইয়ের সাথে ডিল করতে পারে।
পরিষেবাটি হিসাবে ঘোষণা করা @Transactional
আপনাকে পুরো লেনদেনের সময়কালের জন্য একটি সংযোগ দেয় এবং সমস্ত বিবৃতি সেই একক বিচ্ছিন্নতা সংযোগ ব্যবহার করবে। এটি প্রথম স্থানে সুস্পষ্ট লেনদেন না ব্যবহারের চেয়ে ভাল।
বড় অ্যাপ্লিকেশনগুলিতে, আপনার কাছে অনেকগুলি সমবর্তী অনুরোধ থাকতে পারে এবং ডাটাবেস সংযোগ অধিগ্রহণের অনুরোধের হার হ্রাস নিশ্চিতভাবে আপনার সামগ্রিক প্রয়োগের কার্যকারিতা উন্নত করবে।
জেপিএ পড়ার ক্রিয়াকলাপে লেনদেন কার্যকর করে না। আপনি যদি কোনও লেনদেনের প্রসঙ্গে শুরু করতে ভুলে যান তবে কেবলমাত্র কোনও লেনদেনের জন্য প্রয়োজনীয় ব্যতিক্রম ছুঁড়ে লিখুন writes তবুও, কেবল পঠনযোগ্য লেনদেনের জন্যও লেনদেনের সীমানা ঘোষণা করা সর্বদা ভাল (বসন্তে @Transactional
আপনি কেবল পঠনযোগ্য লেনদেনকে চিহ্নিত করতে পারবেন, যার দুর্দান্ত কার্যকারিতা রয়েছে)