سؤال

وماذا CascadeType.REFRESH فعلا؟

وتعريف له هو

<اقتباس فقرة>   

وعندما كنا تحديث كيان جميع الكيانات التي عقدت في هذا المجال التحديث جدا

ولكن ماذا يعني هذا عمليا؟ هل يمكن لشخص من فضلك أعطني مثال بسيط؟

هل كانت مفيدة؟

المحلول

والأوصاف CascadeType الفردية يمكن أن يكون مربكا بعض الشيء، ولكن هناك طريقة سهلة لأنها من أصل الرقم من الحالة العامة.

لأي من القيم CascadeType، وهو ما يعني أنه إذا دعا X عملية على سبيل المثال باستخدام واجهة EntityManager، وهذا المثال لديها ما يشير إلى حالات كيان آخر، وCascadeType.X يعرف أن جمعية، ثم عملية EntityManager يكون أيضا تطبق على هذا الكيان المرتبطة بها.

وهكذا يتم تعريف EntityManager.refresh() على النحو التالي:

<اقتباس فقرة>   

تحديث الدولة مثيل من   قاعدة البيانات، إجراء تغييرات الكتابة   إلى الكيان، إن وجدت.

وحتى إذا كان الكيان A ديه إشارة إلى الكيان B، والمشروح أن الإشارة مع @CascadeType.REFRESH، ويسمى EntityManager.refresh(A)، ثم EntityManager.refresh(B) يسمى ضمنا أيضا.

نصائح أخرى

واسترجاع من قبل التحديث: يمكن إعادة الكائنات المدارة من قاعدة البيانات باستخدام أسلوب التحديث:

ويتم تجاهل المحتوى من كائن مدار في الذاكرة (بما في ذلك التغييرات، إن وجدت) والاستعاضة عنها البيانات التي يتم استردادها من قاعدة البيانات. قد يكون هذا مفيدا لضمان الصفقات تطبيق مع معظم ما يصل إلى تاريخ إصدار كائن الكيان، فقط في حالة قد تم تغييره من قبل EntityManager آخر منذ استرجاعها.

المصدر: http://www.objectdb.com/java/jpa/persistence/ استرداد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top