+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 پاسخ 483 بازدید
0 امتیاز
1 پاسخ 464 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
0 امتیاز
0 پاسخ 758 بازدید
+1 امتیاز
1 پاسخ 579 بازدید
0 امتیاز
1 پاسخ 415 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud65 (27 امتیاز)
0 امتیاز
3 پاسخ 875 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
0 پاسخ 346 بازدید
0 امتیاز
1 پاسخ 535 بازدید
...