در ادامه صفحههایی را میبینید که از برچسب «Transactions» استفاده میکنند
یادداشتهاادامهی مطلب
@Transactional اسپرینگ آن چیزی نیست که فکر میکنید
در بازبینی کد هنوز میبینم که @Transactional مثل یک دعای خیر به کار میرود: رویش بگذار روی یک متد، و پایگاهداده سر به راه میشود. نمیشود. اسپرینگ وقتی تراکنشی را شروع میکند که یک پروکسی فراخوانی ورودی را بگیرد. اگر فراخوانی هرگز به پروکسی نرسد، نه تراکنشی دارید، نه rollbackی، و در عوض یک باگ بسیار گیجکننده در محیط عملیاتی خواهید داشت.
آنچه باور داشتم ← آنچه حالا میکنم
قبلاً «محض احتیاط» روی هر متد سرویس کمی @Transactional میپاشیدم. حالا آن را روی همان یک متدی میگذارم که مرز مورد کاربرد است، تستی مینویسم که rollback را اثبات کند، و فراخوانیهای خصوصی درون یک کلاس را نشانهی بو میدانم.