Friday 15 June 2012

java - Equals on beans with lazy loaded fields -


मान लें कि मेरे पास बीन है:

  class file {private id; निजी स्ट्रिंग का नाम; निजी उपयोगकर्ता लेखक; निजी सूची & lt; उपयोगकर्ता & gt; उपयोगकर्ताओं; @ ओवरराइड पब्लिक बूलियन बराबर (वस्तु obj) {यदि (यह == obj) {वापस सत्य; } यदि (! सुपर.एजेनल (ओबीजे)) {वापसी झूठी} यदि (! (Obj instanceof फ़ाइल)) {वापसी झूठी; } फाइल अन्य = (फाइल) ओब; अगर (getId () == नल) {if (other.getId ()! = Null) {वापसी झूठी; }} और यदि (! GetId ()। बराबर (अन्य। आईआईडी ())) {वापसी झूठी; } अगर (getName () == नल) {if (other.getName ()! = Null) {return false; }} और अगर (! GetName ()। बराबर (अन्य। टैग ())) {वापसी झूठी; } यदि (getAuthor () == नल) {if (other.getAuthor ()! = Null) {वापसी झूठी; }} और यदि (! GetAuthor ()। बराबर (अन्य। GetAuthor ())) {वापसी झूठी; } अगर (getUsers () == नल) {यदि (अन्य। गेस्टयूसर ()! = नल) {वापसी झूठी; }} और यदि (! GetUsers ()। बराबर है (अन्य। गेस्टयूसर ())) {वापसी झूठी; } वापस सच; } ... getters / setters}   

यह बीन / से माइबाटिस या किसी अन्य लगातार ढांचे का उपयोग कर डेटाबेस से मैप किया गया है। क्या मायने रखता है कि उपयोगकर्ता आलसी भरी हुई हैं (जब डीयू से प्राप्त होता है (जब पहली बार यूज़र्स मिलता है)।

मेरा प्रश्न यह है कि विधि के अनुसार इस बीन का क्या होना चाहिए?

क्या मुझे आईडी फ़ील्ड (जो इसकी डाटाबेस प्राथमिक कुंजी है) को शामिल करना चाहिए?

क्या मुझे उपयोगकर्ता सूची शामिल करनी चाहिए? बराबर को जावा ऑब्जेक्ट्स पर अक्सर कहा जाता है (जैसे जब वे संग्रह में संग्रहीत होते हैं), तो यह आलसी दृष्टिकोण को मार देगा।

आपने कहा था कि आईडी प्राथमिक कुंजी है, इसलिए आईडी अद्वितीय है क्योंकि आईडी आपके द्वारा केवल उस फ़ील्ड को बराबर विधि में की जरूरत है।

No comments:

Post a Comment