दिलचस्प पोस्ट
एमडीआई की धागा सुरक्षा std :: async के साथ बनाई गई धागे का उपयोग कर भेजती है Android इनपुट कनेक्शन त्रुटि विधानसभा विधानसभा, विधानसभा के बीच अंतर क्या है विधानसभा और विधानसभाविवरण संस्करण? आईओएस 8 में स्थान सेवा नहीं चल रही है पांडा में एक डेटाफ़्रेम को फेरबदल / क्रमबद्ध करना आप एक ही मेज पर कैसे जुड़ें, दो बार, mysql में? नया JSON डेटा के साथ डेटाटेबल तालिका मैन्युअल रूप से कैसे अपडेट करें मैं एक ही हिल छवि को कई बार कैसे आकर्षित करूं? हास्केल में वस्तु उन्मुख प्रोग्रामिंग आईफ़ोन स्टोर किट "आईट्यून स्टोर से कनेक्ट नहीं हो सकता" जावा enum और अतिरिक्त वर्ग फ़ाइलें क्या एक संपत्ति को केवल सी # में स्थापित करने का एक तरीका है सीएसएस का इस्तेमाल करते हुए होवर पर एक छवि पर एक ज़ूम प्रभाव बनाना है? मोचा / चाई की उम्मीद है। फेंक दिया त्रुटियों को पकड़ने के लिए नहीं जावास्क्रिप्ट में & and && के बीच अंतर क्या है?

जेपीए और बीन मान्यकरण के साथ अद्वितीय बाधा

मैं बीन मान्यकरण के साथ एक @Unique बाधा चाहता हूं, लेकिन यह मानक द्वारा प्रदान नहीं किया गया है अगर मैं जेपीए के @UniqueConstraint का उपयोग करता हूं तो मेरे पास एक अद्वितीय सत्यापन और त्रुटि रिपोर्टिंग तंत्र नहीं होता।

क्या एक @Unique को बीन मान्यकरण बाधा के रूप में परिभाषित करने का एक तरीका है और इसे जेपीए के साथ संयोजित @Unique , जैसे कि जेपीए एक अद्वितीय बाधा के साथ एक स्तंभ बनाता है और जांचता है कि मूल्य एक विशिष्ट है या नहीं?

Solutions Collecting From Web of "जेपीए और बीन मान्यकरण के साथ अद्वितीय बाधा"

जब तक आप पूरी तालिका पर लॉक नहीं प्राप्त करते हैं , तो मूल रूप से एसक्यूएल क्वेरी का उपयोग करने के लिए एकजुटता की जांच करना संभव नहीं है (किसी समवर्ती लेनदेन मैन्युअल जांच के बाद डेटा को संशोधित कर सकता है, लेकिन चालू लेन-देन की प्रतिबद्धता से पहले)। दूसरे शब्दों में, जावा स्तर पर एक वैध अद्वितीय सत्यापन को लागू करना संभव नहीं है और इस प्रकार एक सत्यापन कार्यान्वयन प्रदान करना संभव है। एकजुटता की जांच करने का एकमात्र विश्वसनीय तरीका यह है कि लेन-देन करते समय

बीवी स्पेक इसे इस तरह से सारांशित करता है:

परिशिष्ट डी। जावा अखंड 2.0 एकीकरण

प्रश्न: क्या हमें @ अनिक जोड़ना चाहिए जो कि @ कॉलम (अद्वितीय = सत्य) को मैप करेगा?

@ अनन्य पर जावा स्तर पर विश्वसनीय ढंग से परीक्षण नहीं किया जा सकता है, लेकिन एक डेटाबेस अद्वितीय बाधा पीढ़ी उत्पन्न कर सकता है। @ अन्विक बीवी कल्पना का हिस्सा नहीं है आज।

इसलिए जब मैं सहमत हूं कि यह बीन वैलीकरण अपवाद में लिपटे अद्वितीय (और गैर अशक्त) बाधा का उल्लंघन करने के लिए अच्छा होगा, यह वर्तमान में मामला नहीं है।

संदर्भ

  • बीन मान्यकरण विनिर्देश (जेएसआर 303)
    • परिशिष्ट डी। जावा अखंड 2.0 एकीकरण
  • सत्यापन और दृढ़ता बाधाओं के बारे में प्रश्न

इसके बारे में अधिक जानकारी के बारे में @ अनिक और इसके आसपास के समस्याग्रस्त कैसे हो सकते हैं – http://community.jboss.org/wiki/AccessingtheHibernateSessionwithinaConstraintValidator

आप जेपीए एनोटेशन पढ़ सकते हैं और इसे लागू कर सकते हैं। यहां वसंत मान्यताओं का उपयोग करने के लिए कुछ उदाहरण दिए गए हैं जिन्हें विस्तार करने के लिए एक विचार के रूप में उपयोग किया जा सकता है

जेपीए जेएसआर 303 स्प्रिंग फॉर्म वैलिडेशन

आप एक कस्टम सत्यापनकर्ता में अपने सत्र बीन को ( @Inject या स्प्रिंग के @Autowired ) इंजेक्ट कर सकते हैं और कंटेनर को इसे कैसे तार करना चाहिए पता होना चाहिए। मैं केवल यह एक वसंत उदाहरण के रूप में जानता हूं:

 import javax.validation.ConstraintValidator; public class MyConstraintValidator implements ConstraintValidator { @Autowired //@Inject private Foo aDependency; ... } 

ठीक है आप यह कर सकते हैं, लेकिन यह तुच्छ नहीं है समस्या यह है: सत्यापनकर्ता को जांच करने के लिए कुछ क्वेरी करने के लिए डेटाबेस एक्सेस की आवश्यकता है, यदि वह मान जिसे आप सम्मिलित करना चाहते हैं तो पहले से मौजूद है या नहीं। और यह वास्तव में सत्यापनकर्ता से नहीं किया जा सकता, क्योंकि इसके पास सत्र का पता नहीं है। बेशक, आप इसे सत्यापन (सत्र / सत्रफैटर) के अंदर इन्स्टि्यूट कर सकते हैं, लेकिन यह एक अच्छा कोडिंग अभ्यास नहीं है।