ویرایش جواب: تفاوت session، transaction و connection در Hibernate چیست؟

ساخت وبلاگ

در هایبرنت برای ارتباط با دیتابیس باید session و transaction باز شود تفاوت connection با session چیست؟ چون session در هایبرنت thread-safe نیست  یعنی به  ازای هر thread یک session داریم؟ و قاعدتا یک session برای ارتباط با دیتابیس یک connection احتیاج دارد  در برنامه های تحت وب که هزاران درخواست به یک وب سرور فرستاده می شود و به ازای هر در خواست یک thread تخصیص داده میشود  و اگر هر thread بخواهد با دیتابیس ارتباط برقرار کند هزاران session باز میشود یعنی هزاران connection ؟! در صورتی که میدانیم ساخت connection هزینه بر است و معمولا از connection polling استفاده میکنیم ولی تا جایی که میدونم connection polling هم محدودیت هایی دارد مثلا 200 تا و آیا در هایبرنت برای یک select معمولی لازم است transaction باز شود؟ به طور مثال در فریم ورک هایی مانند spring که transaction را مدیریت می کنند ، اگر متدی داشته باشیم که لیست یک entity را از دیتایس واکشی کند باید بالای سر متد از annotation به نام Transactional استفاده کنیم  این واکشی که یک select معمولی است آیا احتیاج به باز کردن transaction دارد؟ اگر احتیاج هست پس کاربرد session چیست ؟؟و این طور که من متوجه شدم در صورتی یک  transaction باز می کنیم که بخواهیم چندین عملیات دیتابیسی از قبیل اپدیت ،حذف و... در یک واحد کاری انجام شود

جواب یاب...
ما را در سایت جواب یاب دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان javabyab بازدید : 115 تاريخ : دوشنبه 28 تير 1395 ساعت: 1:46