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

كيفية التحقق من صحة مجموعات الحقول في JPA 2.0/Hibernate؟

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

How to Validate Combinations of Fields in JPA 2.0/Hibernate?

التحقق من صحة مجموعات الحقول في JPA 2.0/Hibernate

عند استخدام التحقق من صحة JPA 2.0/Hibernate، من الممكن مواجهة سيناريوهات حيث يتم التحقق من صحة حقول متعددة في تركيبة أمر ضروري. على سبيل المثال، فكر في نموذج يحتوي على الحقول getValue1() و getValue2():

public class MyModel {
    public Integer getValue1() {
        //...
    }
    public String getValue2() {
        //...
    }
}

يجب اعتبار النموذج غير صالح إذا كان كل من getValue1() و getValue2() فارغين، مما يشير إلى بيانات غير صالحة.

قيود على مستوى الفصل: الحل

للتعامل مع عمليات التحقق من الصحة هذه، يوفر JPA 2.0/Hibernate قيودًا على مستوى الفصل. تعمل هذه القيود على مثيل الفئة بأكملها بدلاً من الخصائص الفردية. يوفر هذا الأسلوب المرونة في التحقق من صحة الحقول المترابطة.

تحديد القيد

حدد قيدًا على مستوى الفصل يسمى AddressAnnotation للتحقق من صحة مجموعة الحقول. قم بتعيين @Target على ElementType.TYPE لتطبيق هذا القيد على الفئة بدلاً من خاصية محددة:

@Constraint(validatedBy = MultiCountryAddressValidator.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface AddressAnnotation {
    String message() default "{error.address}";
    Class>[] groups() default { };
    Class extends Payload>[] payload() default { };
}

تنفيذ أداة التحقق

بعد ذلك، قم بإنشاء تطبيق أداة التحقق MultiCountryAddressValidator. ستتلقى هذه الفئة مثيل الكائن وتقوم بالتحقق من صحة الحقل المدمج:

public class MultiCountryAddressValidator implements ConstraintValidator {
    ...
    // Implement the isValid() method to define the validation logic
}
في هذا التنفيذ، يمكنك الوصول إلى حقول متعددة لمثيل الكائن (العنوان في هذه الحالة) وتطبيق قواعد التحقق اللازمة.

تعليق فئة النموذج

أخيرًا، قم بإضافة تعليق توضيحي لصف MyModel الخاص بك باستخدام AddressAnnotation:

@AddressAnnotation
public class MyModel {
    ...
}
من خلال استخدام القيود على مستوى الفصل الدراسي، يمكنك التحقق من صحة مجموعات الحقول بشكل فعال بطريقة قوية ومرنة باستخدام التحقق من السبات.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3