يوفر JPA (Java Persistence API) العديد من التعليقات التوضيحية لتعيين فئات Java إلى جداول قاعدة البيانات. أحد هذه التعليقات التوضيحية المفيدة هو @MappedSuperclass، والذي يُستخدم لتعيين فئة يجب أن ترث خصائصها بواسطة فئات كيانات أخرى، ولكنها ليست كيانًا بحد ذاته. دعونا نستكشف فائدة هذا التعليق التوضيحي من خلال مثال عملي يتضمن فئات مثل المركبات والسيارات والدراجات النارية.
ما هو @MappedSuperclass؟
يتم استخدام التعليق التوضيحيMappedSuperclass للإشارة إلى أن الفئة لا ينبغي أن تكون كيانًا مستقلاً، ولكن يجب أن ترث سماتها بواسطة فئات أخرى تمثل كيانات. يعد هذا مفيدًا عندما تريد مشاركة السمات المشتركة بين كيانات متعددة دون إنشاء جدول منفصل للفئة الأساسية.
الميزات الرئيسية:
مثال عملي
لنقم بإنشاء مثال باستخدام التسلسل الهرمي للفئة للمركبة والسيارة والدراجة النارية، حيث تكون المركبة هي الفئة الفائقة.
1. الفئة الأساسية: مركبة
import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class Veiculo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String marca; private String modelo; private int ano; // Getters e Setters }
2. فئة فرعية: سيارة
import javax.persistence.Entity; import javax.persistence.Table; @Entity @Table(name = "carro") public class Carro extends Veiculo { private int quantidadePortas; // Getters e Setters }
3. فئة فرعية: دراجة نارية
import javax.persistence.Entity; import javax.persistence.Table; @Entity @Table(name = "motocicleta") public class Motocicleta extends Veiculo { private boolean temSidecar; // Getters e Setters }
تعيين الجدول
باستخدام الفئات المذكورة أعلاه، سيقوم JPA بإنشاء الجداول التالية في قاعدة البيانات:
جدول المركبة غير موجود في قاعدة البيانات، حيث أن فئة المركبة هي مجرد فئة فائقة وليست كيانًا.
فوائد استخدام@MappedSuperclass
الاعتبارات
إذا كنت تريد أن تكون الفئة الفائقة أيضًا كيانًا (على سبيل المثال للاستعلامات المباشرة)، فاستخدم استراتيجية الوراثة @Inheritance بدلاً من @MappedSuperclass.
@MappedSuperclass مثالي للمواقف التي لا تحتاج فيها الفئة الأساسية إلى الاستمرار ككيان فردي، ولكن خصائصها ذات صلة بكيانات متعددة.
خاتمة
يعد التعليق التوضيحيMappedSuperclass أداة قوية لإنشاء تسلسلات هرمية للفئات قابلة لإعادة الاستخدام في JPA. في المثال أعلاه، تمكنا من تركيز السمات المشتركة في السيارة، وفي الوقت نفسه، الحفاظ على المرونة والاستقلالية لكيانات السيارة والدراجة النارية. يعزز هذا النهج تصميمًا أكثر وضوحًا وأكثر نمطية، خاصة في الأنظمة التي تحتوي على كيانات متعددة تشترك في خصائص مماثلة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3