2012-04-27 11 views
6

मैं हाइबरनेट और जेपीए के साथ काम कर रहा हूं। मैं Customer नामक संस्था का संदर्भ देता है एक ParentCustomer है:शून्य ऑब्जेक्ट अगर इकाई नहीं मिली

public class Customer { 
    @Id 
    @GeneratedValue 
    @Column(name = "CustomerID") 
    private int id; 

    @ManyToOne 
    @JoinColumn(name = "ParentCustomerID") 
    private Customer parent; 

    // ... 
} 

लेकिन मेरी DB में कुछ ग्राहकों को कोई माता पिता है कि इतने ParentCustomerID0 पर सेट किया जाता है। अपवाद मैं जब मैं अपने वर्ग का परीक्षण है:

javax.persistence.EntityNotFoundException: Unable to find it.keyforup.pat.data.entities.Customer with id 0

वहाँ ParentCustomernull करने के लिए सेट करने के लिए जब आईडी 0 है कोई तरीका है?

+3

तुम क्यों कहते हैं कि 0? यदि आप इकाई को 'शून्य' होना चाहते हैं, तो विदेशी कुंजी मान 'शून्य' होना चाहिए। –

+0

मैं किसी तृतीय पक्ष एप्लिकेशन द्वारा उपयोग किए जाने वाले डीबी पर काम कर रहा हूं, इस एप्लिकेशन ने पेरेंट आईडी को 0 पर सेट किया है जब ग्राहक के लिए कोई अभिभावक नहीं है ... इसलिए मैं यह सुनिश्चित कर दूंगा कि प्रत्येक बार जब माता-पिता को माता-पिता नहीं मिले 'संपत्ति शून्य पर सेट है। – davioooh

+1

हालांकि यह वैध डेटाबेस व्यवहार नहीं है। इसके अलावा यदि सख्त डेटाबेस प्रतिबंध सत्यापन को इंगित किया गया था तो वे ऐसा भी नहीं कर सके .. –

उत्तर

19

प्रयास करें इस

@ManyToOne 
@JoinColumn(name = "ParentCustomerID") 
@NotFound(action = NotFoundAction.IGNORE) 
private Customer parent; 
+0

यह पोस्ट किया गया सटीक डुप्लिकेट में सुझाया गया था। –

+0

जैसा कि यह प्रसन्न होता है, मुझे अतीत में यह समस्या मिली है और अधिसूचना एनोटेशन के साथ हल किया गया है, इसलिए जब मैंने धागा देखा - यह ट्रेडमिल पर था - किसी ने मुझे मारने से पहले जवाब पोस्ट करने का फैसला किया । पहली ओर डुप्लिकेट पोस्ट नहीं देखा- अच्छी कॉल। – Bitmap

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