मैं जब JPA2 और EclipseLink का उपयोग कर एक डेटाबेस आवेदन के लिए परीक्षण लेखन एक समस्या मारा जैसा कि मैंने इरादा किया था अतिरिक्त जोड़ा।क्या किसी जेपीए इकाई के आईडी फ़ील्ड को बराबर और हैशकोड में माना जाना चाहिए?</p> <p>मैं एक डेटाबेस के लिए कुछ इकाई जोड़ने के लिए, यह बाद में निकालते हैं और एक उदाहरण है जो मूल्यों मुझे यह बताते हुए कि उम्मीद है करने के लिए यह तुलना करना चाहते हैं:
सबसे पहले मैं की तरह
assertEquals(expResult, dbResult);
जो विफल रहा है कुछ लिखा था, क्योंकि मैं वास्तव में id
क्षेत्र है, जो डेटाबेस से उत्पन्न होता है के मूल्य को नहीं पता कर सकते हैं और इसलिए dbResult
expResult
जो मैं new
साथ बनाया है और से अलग है मैन्युअल रूप से आबादी।
मैं दो विकल्प देखेंगे:
या तो मैं इतना है कि तुलना केवल "वास्तविक मूल्यों" पर आधारित है
equals
औरhashCode
सेid
क्षेत्र को हटा दें। मुझे नहीं पता कि क्या यह डेटाबेस या अन्य जगहों में समस्याएं पैदा करता है, हालांकि।या मैं मैन्युअल रूप से
id
को छोड़कर प्रत्येक फ़ील्ड को स्पष्ट रूप से जांचने के लिए अपने परीक्षण लिखता हूं।
मुझे क्या करना चाहिए?
बहुत विवाद मिल सकता है? यह आशावादी है। – digitaljoel