2010-12-07 18 views
11

मैंने अभी एक ऐसे अनुप्रयोग को अपग्रेड करना शुरू किया है जो हाइबरनेट 3.5.6 का उपयोग करता है। सामान्य से 3.6.0. फ़ाइनल, और कई हिकअप हैं। आखिरी हिकअप मुझे समाधान नहीं मिल रहा है।हाइबरनेट 3.6.0 के साथ सहेजें/अपडेट पर हाइबरनेट प्रमाणीकरण को अक्षम करना। अंतिम

3.6.0. जब किसी ऑब्जेक्ट को हाइबरनेट के माध्यम से सहेजा/अपडेट किया जाता है तो अंतिम रूप से बीन सत्यापन चालू हो जाता है। यह बहुत बुरा है क्योंकि मेरे कुछ परीक्षण सभी गुणों को स्थापित करने से परेशान नहीं हैं - उन्हें बस आवश्यकता नहीं है। मैं ईमानदारी से कुछ मनमानी सत्यापन का अनुपालन करने के लिए प्रत्येक 'विवरण' फ़ील्ड और अनगिनत अन्य फ़ील्ड सेट करने के लिए बिंदु नहीं देखता हूं।

यह मुझे मेरे सभी परीक्षणों में वैध वस्तुओं को बनाने में घंटों खर्च करने के लिए मजबूर करने जा रहा है (अब मेरे पास 1300 से अधिक कार्यात्मक परीक्षण हैं)। और स्पष्ट रूप से, यह व्यर्थ होगा क्योंकि मुझे यकीन है कि एमवीसी में सभी सत्यापन हो रहा है और वर्तमान में डेटाबेस में डेटा प्राप्त करने के अन्य कोई अन्य तरीके नहीं हैं।

मैं भी अपने बीन्स को दो बार मान्य करके एक प्रदर्शन हिट नहीं करना चाहता - एक बार एमवीसी में, और फिर एक और समय हाइबरनेट के भीतर। यह मेरे मामले में बस जरूरी नहीं है।

क्या कोई तरीका है जिससे मैं इसे बंद कर सकता हूं? मैं वसंत और नियमित हाइबरनेट मैपिंग फाइलों का उपयोग कर रहा हूं, जेपीए नहीं (मैं सभी टिप्पणियों को नापसंद करता हूं)।

उत्तर

22

persistence.xml के लिए निम्न जोड़ें:

<validation-mode>NONE</validation-mode> 

या hibernate.cfg.xml प्रॉपर्टी जोड़ना:

<property name="javax.persistence.validation.mode">none</property> 

अधिक विकल्पों के लिए 23.1.2. Configuration देखें।

+0

क्या वसंत के माध्यम से मैं ऐसा कर सकता हूं? मैं जेपीए का उपयोग नहीं कर रहा हूं, केवल नियमित हाइबरनेट मैपिंग फाइलों को मैप कर रहा हूं। – egervari

+0

@egervari: अपडेट किया गया। – axtavt

+0

धन्यवाद, यह किया था! ओह! – egervari

2

hibernate.validator.autoregister_listeners संपत्ति false पर सेट करें। आप झूठ में hibernate.validator.apply_to_ddl भी सेट कर सकते हैं।