मेरे पास कुछ तार्किक रूप से हटाए गए रिकॉर्ड (यानी active=false
) हैं जो मेरे @ManyToOne
मैपिंग के साथ समस्याएं पैदा कर रहे हैं क्योंकि एक से अधिक परिणाम कॉलम कॉलम द्वारा वापस किए जा रहे हैं।कई टीओओएन जहां क्लॉज
मैं केवल रिकॉर्ड जहां active=true
जो मैंने सोचा कि मैं प्राप्त कर सकते थे शामिल करने की ज़रूरत द्वारा:
@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "site_id", referencedColumnName = "site_id", insertable = false, updatable = false)
@WhereJoinTable(clause = "active=true")
private Site site;
हालांकि, यह WhereJoinTable
हाइबरनेट (? शायद अपने ही मान्य OneToMany
के लिए) के बाद से द्वारा इस्तेमाल नहीं किया जा रहा है की तरह लगता है active=true
जेनरेट किए गए SQL (लॉग) में दिखाई नहीं देता है और समस्या बनी रहती है।
क्या ManyToOne
और कैसे शामिल होने के लिए एक खंड शामिल करना संभव है?
यानी तो मैं एक ही 'ActiveSite' इकाई को पढ़ लिया है यह, एक ही तालिका फिर से नक्शा और मानचित्रण पर एक फिल्टर डाल करने के लिए संभव है? – pstanton
हाँ, आप यह कर सकते हैं। लेकिन सक्रिय साइट और साइट के उदाहरणों के बीच अपेक्षित कनेक्शन के रूप में तब हाइबरनेट के लिए अज्ञात है। इसलिए संबंधित साइट पर किए गए परिवर्तन केवल सक्रियसाइट पर प्रतिबिंबित होते हैं जब इसे डेटाबेस से पढ़ा जाता है (या ताज़ा किया जाता है)। –
हाँ, जो इस मामले में स्वीकार्य होगा, हालांकि मैं अपने '@ एंटिटी' पर '@Where (clause = "active = true")' का उपयोग करने की कोशिश कर रहा हूं और हाइबरनेट इसे 'site0_.active = site0_ में परिवर्तित कर रहा है। सच '.. अगर आप मुझे इसे हल करने में मदद कर सकते हैं तो मैं आपको टिक दूंगा (क्योंकि आप अपने उत्तर में सही हैं ..) मदद के लिए धन्यवाद! – pstanton