2011-07-29 14 views
7

मैं सिद्धांत में वैकल्पिक वनटोन मैपिंग बनाने की कोशिश कर रहा हूं।सिद्धांत वैकल्पिक वनटोन मैपिंग

मेरे पास सभी शहरों और ज़िप कोड उपलब्ध हैं (इस तालिका को बदला नहीं जाना चाहिए) के साथ एक टेबल है, और मेरे पास पते और मैप किए गए शहर के साथ एक टेबल है। लेकिन कभी-कभी मैं शुरुआत में अपने पते पर शहर नहीं जोड़ना चाहता (शायद बाद में यह होगा)। लेकिन जब मैं पते पर कोई शहर नहीं जोड़ता हूं तो पते पर बने रहने से मुझे एक प्रतिबिंब अपवाद मिलता है क्योंकि 'ऑल' जैसी कोई वस्तु नहीं है, जो कि सिटी ऑब्जेक्ट होना चाहिए।

मैं डेटाबेस में हर बार एक खाली शहर नहीं जोड़ना चाहता, क्योंकि शहर की मेज में कुछ भी जोड़ा या हटाया जाना चाहिए।

कोई सुझाव? या मुझे क्या याद आ रही है?

class Address{ 
/** 
* @OneToOne(targetEntity="City") 
* @JoinColumn(name="city_id", referencedColumnName="id") 
*/ 
    private $city = ''; 

संभावित समाधान मैं माना:

  • DB में एक खाली शहर वस्तु बनाएँ और नव निर्मित पता वस्तुओं के लिए हमेशा इस आवंटित (भूमि के ऊपर का एक बहुत कारण हो सकता है)
  • एक बनाएं कई शहरों के सरणी के साथ बहुत से संबंध हैं, इसलिए शून्य या अधिक शहरों को जोड़ा जा सकता है (मैं अपने पता वस्तु में शहरों की भीड़ को सीमित कर सकता हूं) लेकिन फिर मुझे मैपिंग टेबल की आवश्यकता है ...

उत्तर

16

बस बस nullable=true@JoinColumn

+0

को एनोटेशन किसी भी एक बहु-स्तंभ में शामिल होने के (यानी @JoinColumns) के लिए यह काम करने के लिए जिस तरह से जोड़ें। मैंने कोशिश की है लेकिन बिना किसी किस्मत के ... –

+0

दुर्भाग्यवश यह खाली पैरामीटर के साथ क्वेरी में INSERT उत्पन्न करता है और एक त्रुटि का कारण बनता है: '' संदेश में संदेश प्रविष्टि (शीर्षक, lastMessage_id) VALUES (?,?) 'पैराम्स के साथ [43] '- दूसरा पैरा (एक से एक) गायब है। – Athlan

+0

यह मेरे लिए काम नहीं करता है। मैंने nullable = सच जोड़ा लेकिन कोई सफलता नहीं। क्या विकल्प के रूप में एक से एक रिश्ते को बनाने के लिए वैसे भी हैं? – skonsoft

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