2016-03-23 7 views
7

क्या मैं हाइबरनेट इकाई के क्षेत्रों में वैकल्पिक का उपयोग कर सकता हूं? शायद कुछ कस्टम उपयोगकर्ता प्रकार के साथ?जावा 8 इकाई क्षेत्र में वैकल्पिक

मुझे पता है कि मैं इसे AccesType.FIELD का उपयोग करके विधियों में उपयोग कर सकता हूं (मैं वैसे भी AccesType.FIELD का उपयोग करता हूं)।

मुझे यह क्यों चाहिए? खैर, मैं जितना संभव हो सके नल से दूर रहना चाहता हूं।

उत्तर

1

आपको कक्षा में किसी क्षेत्र के रूप में Optional का उपयोग नहीं करना चाहिए (या तो हाइबरनेट उपयोग के लिए या नहीं)।

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

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

आशा है कि इससे मदद मिलेगी।

+0

वैकल्पिक के बराबर और हैशकोड कार्यान्वयन के बारे में अप्रत्याशित क्या है? ऐसा लगता है कि आपके द्वारा लिंक किए जाने वाले जावाडोक में एक स्पष्ट, दृढ़ अनुबंध है। –

+0

शॉर्टकट के लिए खेद है। मेरा मतलब बराबर और हैशकोड नहीं था, लेकिन == और पहचान हैशकोड। सुधार के लिए धन्यवाद। – cdelmas

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