0 امتیاز
قبل در برنامه نویسی توسط (27 امتیاز)
ویرایش شده قبل توسط
از دوستان کسی می تواند در مورد level های caching درهایبرنت توضیح بده مثل :

1- First Level Cache

2-second level cache

3- query cache

1 پاسخ

0 امتیاز
قبل توسط (130 امتیاز)
ویرایش شده قبل توسط
شما معمولا در هایبرنت به ازای هر عمل دیتابیسی یک session  باز می کنید کارهای مورد نظر خودتون رو در متن اون session انجام میدید و بعد session رو می بندید این session به مانند یک ظرفی هس که هر entity که درش بازیابی می کنید (از دیتابیس به کمک متد find ) یا یک آبجکت جدید را در دیتابیس ذخیره می کنید ( به کمک متد save )  یا حتی کوییری می زنید به دیتابیس  حین این کار که session باز هس یکسری entity داخل اون ظرف نگهداری میشه و البته کوییری هایی که شما به زبان htql نوشتید و تبدیل شده به sql ( توسط هایبرنت ) همه اینها داخل ظرفی بنام session نگهداری میشه اسم اون ظرف هس first level cache

مسوول نگهداری کش سطح اول بر عهده session است

second level cache

فرض کنید شما در پروژه تون همزمان چندین session باز دارید و همگی به صورت مستقل از همدیگه در حال کار هستند در کنار این session  ها یک ظرف مشترک بین همه session ها هس که مسوول هندل کردن و نگهداری اون برعهده sessionFactory است وقتی داخل session  نیاز به دسترسی به یک نمونه entity صادر میشه اول داخل ظرف مخصوص اون session بررسی میشه اگه اونجا پیدا شد بهش تحویل داده میشه اگه پیدا نشده سراغ اون ظرف مشترک بین همه session رفته از اونجا نمونه entity رو میخواد و اگه اونجا هم نباشه سراغ دیتابیس میره و کوییری میزنه به دیتابیس و از اون جا داده بازیابی شده و این بار هم روی کش سطح دو و سطح یک کپی میشه

سوالات مشابه

0 امتیاز
0 پاسخ 752 بازدید
+1 امتیاز
1 پاسخ 569 بازدید
0 امتیاز
3 پاسخ 866 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
0 پاسخ 342 بازدید
0 امتیاز
1 پاسخ 528 بازدید
0 امتیاز
1 پاسخ 376 بازدید
0 امتیاز
2 پاسخ 1.8هزار بازدید
0 امتیاز
0 پاسخ 277 بازدید
0 امتیاز
1 پاسخ 322 بازدید
...