यह बिल्कुल सही व्यवहार है।
not-null विशेषता के दो अर्थ हैं:
- स्कीमा निर्यात टूल का समर्थन करें
- कार्यकाल में इकाई की जाँच करें (अर्थात डेटाबेस कॉलम सेटिंग की जाँच न करें)
देखें:5.1. मानचित्रण घोषणा , निकालें:
और 5.1.11. संपत्ति , निकालें:
इसलिए, यदि आपके क्लाइंट कुछ कोड चलाते हैं, जो कोशिश करता है:
getHibernateTemplate().saveOrUpdate(myEntity);
जबकि myEntity not-null="true" . के रूप में सेट की गई कुछ संपत्ति गुम है रनटाइम अपवाद फेंकने में यह सही है। अपने परीक्षण के माहौल में आप सबसे अधिक संभावना हमेशा संपत्ति को कुछ . पर सेट करते हैं शून्य मान नहीं।
और एक फायदा भी है। डीबी और ऐप शिथिल युग्मित हैं। इसलिए यदि आवश्यक हो, तो आप डीबी को नहीं छूते हुए ऐप की तरफ और अधिक बाधाएं बना सकते हैं (उदाहरण के लिए आपको अनुमति नहीं है)