0%
تعيين الكيانات (Mapping)

التعيين (Mapping)

كيف تعرّف كيانًا يصمد في بيئة الإنتاج، لا في الاختبار الأول فقط.

15-20 دقيقة

تعيين الكيانات (Mapping)

يتطلب تعريف كيان JPA ثلاثة تعليقات توضيحية (annotations) فقط. أما تعريف كيان لن يسبب لك مشكلات بعد عامين، فيتطلب نحو عشرة قرارات، أربعة منها لا رجعة فيها بمجرد وجود بيانات في قاعدة البيانات.

أكثر هذه القرارات كلفة هو ما يتعلق بالتعدادات (enumerations). فالإعداد الافتراضي في JPA يخزّن التعداد على شكل عدد صحيح يعبّر عن الموضع: تصبح EN_ATTENTE هي 0، وتصبح PAYEE هي 1. وفي اليوم الذي يُدرج فيه مطوّر قيمة في منتصف القائمة، وهو ما تسمح به أي لغة برمجة دون عواقب، يتغير معنى جميع الصفوف المكتوبة سابقًا. فتتحول الطلبات المدفوعة إلى طلبات ملغاة. لا رسالة خطأ ولا استثناء، بل بيانات لم تعد تعني ما كانت تعنيه.

القرار الثاني المكلف هو اختيار المفتاح الأساسي، لأنه يحدد ما إذا كان يمكن تجميع عمليات الكتابة في دفعات. والقرار الثالث هو الاختيار بين حقل بسيط ونوع قيمة (value type) مشترك. أما الرابع فهو استراتيجية الوراثة، التي تحدد شكل الجداول، وبالتالي كلفة جميع عمليات القراءة المستقبلية.

يستعرض هذا الدرس هذه الخيارات، مبيّنًا في كل مرة DDL الذي تولّده PostgreSQL. وهذه هي الطريقة الوحيدة للتحقق من أن التعليق التوضيحي يفعل فعلًا ما نظنه.

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!