"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تنفيذ إصدار البيانات باستخدام المفاتيح الأساسية المركبة في JPA؟

كيفية تنفيذ إصدار البيانات باستخدام المفاتيح الأساسية المركبة في JPA؟

تم النشر بتاريخ 2024-11-16
تصفح:120

How to Implement Data Versioning with Composite Primary Keys in JPA?

التعامل مع المفاتيح الأساسية المركبة باستخدام JPA

يتطلب إصدار البيانات القدرة على تكرار كيان بإصدارات مختلفة، مما يجعل من الضروري إنشاء مركب المفتاح الأساسي للكيانات.

تعريف الكيان مع المفتاح الأساسي المركب

في JPA، يمكن للمفاتيح الأساسية المركبة يمكن تعريفها باستخدام التعليقات التوضيحية @EmbeddedId أو @IdClass.

باستخدام @EmbeddedId

حدد فئة منفصلة (@Embeddable مشروحة) للمفتاح، ثم قم بالتعليق عليها مع @EmbeddedId في الكيان:

@Entity
public class YourEntity {
    @EmbeddedId
    private MyKey myKey;

    private String columnA;
    // getters and setters
}

@Embeddable
public class MyKey implements Serializable {

    private int id;
    private int version;
    // getters and setters
}

استخدام @IdClass

بدلاً من ذلك، قم بإضافة تعليق توضيحي للفصل باستخدام @IdClass وحدد سمات المعرف على أنها @Id داخل الفصل:

@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

}

public class MyKey implements Serializable {
   private int id;
   private int version;
}

تكرار الكيانات مع الإصدارات

بمجرد تعريف الكيان، يمكن تكراره بإصدار جديد. على سبيل المثال، لإنشاء إصدار جديد من الكيان الأول بالمعرف=1:

YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // نسخة جديدة
newVersion.setColumnA("بعض البيانات الأخرى");
الكيانManager.persist(newVersion);
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3