2015-04-07 11 views
6

मेरे पास कई प्रक्रियाएं हैं जिनमें बीन गुणों के अलग-अलग मान होना चाहिए। उदाहरण:जावा बीन सत्यापन: मैं एक ही प्रकार की एकाधिक सत्यापन बाधाओं को अलग-अलग समूहों के साथ कैसे निर्दिष्ट करूं?

@Min(value=0, groups=ProcessA.class) 
@Min(value=20, groups=ProcessB.class) 
private int temperature; 

दुर्भाग्य से सेम सत्यापन JSR 303 javax.validation.constraints.Min पर सेट नहीं किया @Repeatable तो इस दृष्टिकोण काम नहीं करता। मुझे "Min.List" मिला लेकिन इसका उपयोग करने के बारे में किसी भी दस्तावेज़ के बिना। इसके बजाय http://docs.oracle.com/javaee/7/api/javax/validation/constraints/class-use/Min.List.html

javax.validation.constraints.Min.List

का कोई उपयोग पर आधिकारिक ओरेकल दस्तावेज़ राज्यों तो इस समय यह एक विनिर्देश त्रुटि की तरह दिखता है?!?

+0

प्रलेखन भी कहते हैं, "को परिभाषित करता है एक ही तत्व पर कई मिन एनोटेशन।" है। तो ऐसा लगता है कि आप क्या करना चाहते हैं। क्या आपने इसका इस्तेमाल करने की कोशिश की है? कठिनाई क्या है? –

+0

javac एक संकलन त्रुटि फेंकता है: गैर-दोहराने योग्य प्रकार @ न्यूनतम की डुप्लिकेट एनोटेशन। @ रीपेटेबल चिह्नित केवल एनोटेशन प्रकारों को एक लक्ष्य पर कई बार इस्तेमाल किया जा सकता है। –

+0

जब आप पोस्ट किए गए कोड में दो बार '@ Min' का उपयोग करते हैं, तो यह वही होता है। और यही कारण है कि आपको इसके बजाय '@ Min.List' का उपयोग करना चाहिए, जिसे" उसी तत्व पर कई न्यूनतम एनोटेशन परिभाषित करता है "के रूप में दस्तावेज किया गया है। जब आप '@ Min.List' का उपयोग करते हैं तो क्या होता है? –

उत्तर

7

Min.List वाक्य विन्यास, किसी भी अन्य एनोटेशन इसकी विशेषताओं में से एक के रूप में एनोटेशन की एक सरणी लेने के लिए के रूप में,

@Min.List({ @Min(value = 0, groups = ProcessA.class), 
      @Min(value = 20, groups = ProcessB.class) }) 
+0

धन्यवाद। बस। कोई विचार यह है कि यह केवल कई बार न्यूनतम होने से बेहतर क्यों है? कम से कम यह पठनीयता कम हो जाता है। –

+1

एनोटेशन जावा 8 के बाद दोहराने योग्य हैं। बीन सत्यापन जावा 5 या 6 पर डिज़ाइन किया गया था। इसलिए यह संभावना मौजूद नहीं थी, इसलिए Min.List का कामकाज। यदि बीन प्रमाणीकरण अब डिजाइन किया गया था, तो न्यूनतम सूची शायद मौजूद नहीं होगी। –

+0

अच्छा बिंदु। धन्यवाद। मैं इसे बीन सत्यापन के लिए एक वृद्धि अनुरोध कर दूंगा। –

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

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