سؤال
وماذا 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/ استرداد