+1 امتیاز
قبل در برنامه نویسی توسط (778 امتیاز)
ویرایش شده قبل توسط
با سلام

این که hibernate از proxy در روابطی مثل many to one استفاده می کند یعنی چی؟ در بعضی موارد در error های hibernate به proxy بر می خوریم.

منظور proxy design pattern هست یا چیزی دیگه ای؟

ببخشید اگه سؤال مبتدی بود.

1 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

بله منظور همان الگوی طراحی proxy است. Hibernate برای پیاده سازی مفهوم lazy loading از الگوی طراحی proxy استفاده می کند و کلاس های proxy را بصورت داینامیک تولید می کند. برای روشنتر شدن مطلب کلاس User را در نظر بگیرید که سه فیلد id, name و لیستی از Address ها دارد، حال اگر بخواهیم یک User را از دیتابیس بگیریم آیا باید تمام فیلد های شئ User مقدار داشته باشد؟ در Hibernate وقتی شئ User از دیتابیس گرفته می شود، Hibernate یک کلاس Proxy برای کلاس User ایجاد می کند که از کلاس User ارث برده است و یک شئ از آن کلاس proxy برای ما بر می گرداند که فقط فیلد های رده اول (first level) آن مقدار دارد (id و name) و فیلد listOfAddresses مقدار ندارد و اگر آدرس های کاربر را بخواهید باید متد getListOfAddress شئ proxy را فراخوانی کنید تا به آن مقادیر دسترسی داشته باشید.

سوالات مشابه

0 امتیاز
0 پاسخ 474 بازدید
0 امتیاز
1 پاسخ 459 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
0 امتیاز
0 پاسخ 752 بازدید
+1 امتیاز
1 پاسخ 568 بازدید
0 امتیاز
1 پاسخ 408 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud65 (27 امتیاز)
0 امتیاز
3 پاسخ 865 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
0 پاسخ 342 بازدید
0 امتیاز
1 پاسخ 528 بازدید
...