2012-10-25 15 views
6

मैं अपने EclipseLink इकाइयों में डेटा को हाइबरनेट वैलिडेटर का उपयोग करके डेटाबेस में डालने से पहले सत्यापित करना चाहता हूं।हाइबरनेट वैलिडेटर - इकाई के बाद डिफ़ॉल्ट मान सेट करना सत्यापन विफल रहता है

यदि सत्यापन विफल रहता है तो मैं उन इकाइयों पर डिफ़ॉल्ट मान सेट करना चाहता हूं। फिर मैं डेटाबेस में डेटा डालना चाहता हूं और उन इकाइयों को ध्वजांकित करना चाहता हूं क्योंकि प्रासंगिक त्रुटि संदेशों के साथ विफलता विफल रही है।

क्या वैधकर्ता की isalid() विधि का उपयोग करने के लिए ऐसा करने का सबसे अच्छा तरीका है?

मैं हाइबरनेट वैलिडेटर के लिए नया हूं, googled और stackoverflow खोज रहा हूं लेकिन मेरे जैसा कोई प्रश्न नहीं मिला।

+0

हाय एंड्रयू, आपको इस पर कुछ प्रगति मिली है? या इसे एक कार्यात्मक दृष्टिकोण से प्राप्त करने के लिए कुछ रास्ता मिला? – Stephane

उत्तर

0

डिफॉल्ट रूप से हाइबरनेट डिफ़ॉल्ट रूप से बाद में सामानों को सहेजने से पहले(), persist() या अद्यतन() को सहेजने वाली इकाई को मान्य करता है।

अपने मामले में, आप अपने ऑब्जेक्ट को स्वयं सत्यापित करने के लिए सत्यापनकर्ता का उपयोग कर सकते हैं। फिर प्रतिबंध उल्लंघन की सूची पर निर्भर करता है, आप डिफ़ॉल्ट मानों को भरने के लिए अमान्य गुणों की पहचान कर सकते हैं।

हाइबरनेट सत्यापनकर्ता API का उपयोग करने का उदाहरण here पाया जा सकता है। ValidatorFactory आपका दोस्त है।

संबंधित मुद्दे