java - Hibernate Auditable many-to-many relationships -
निम्न हाइबरनेट कॉन्फ़िगरेशन पर विचार करें:
& lt; class name = "person" & gt; & Lt; id name = "id" column = "personId" & gt; & Lt; जनरेटर वर्ग = "मूल" / & gt; & Lt; / आईडी & gt; & Lt; सेट नाम = "पता" तालिका = "व्यक्तित्व" & gt; & Lt; प्रमुख स्तंभ = "व्यक्ति आयड" / & gt; & Lt; कई-से-कई स्तंभ = "पता आयड" वर्ग = "पता" / & gt; & Lt; / सेट & gt; & Lt; / वर्ग & gt; & Lt; class name = "पता" & gt; & Lt; id name = "id" column = "addressId" & gt; & Lt; जनरेटर वर्ग = "मूल" / & gt; & Lt; / आईडी & gt; & Lt; सेट नाम = "लोग" उलटा = "सच" तालिका = "व्यक्तित्व" & gt; & Lt; key column = "addressId" / & gt; & Lt; कई-से-कई स्तंभ = "व्यक्ति आयड" वर्ग = "व्यक्ति" / & gt; & Lt; / सेट & gt; & Lt; / वर्ग & gt; अब, इन दो वर्गों (व्यक्ति और पता) में एक ऑडिट योग्य इंटरफ़ेस है हमारे हाइबरनेट ऑडिट इंटरसेप्टर वर्ग (इंटरसेप्टर लागू) में, हम कुछ ऑडिटिंग फ़ंक्शन करते हैं, यदि इकाई ऑडैटेबल का उदाहरण है। संक्षेप में, यह सब कोड महान काम करता है ...
हालांकि, इस व्यक्ति खाता तालिका है जो लेखापरीक्षा नहीं मिलती क्योंकि हम तकनीकी रूप से इसके लिए एक POJO नहीं है ... तो हम ऐसा नहीं कर सकते कुछ "उदाहरण के लिए" जांचें क्या हाइबरनेट कॉन्फ़िगरेशन में कोई तरीका है, जिसे हम यह PersonAddress टेबल को अवरुद्ध करने के लिए कह सकते हैं? हो सकता है कि हमें इंटरसेप्टर से दूसरे कार्यों में से एक को संभालना जरूरी है (जैसे कलेक्शनअपडेट)। मुझे यकीन नहीं है ...
एकमात्र तरीका मैं इसे ऑडिट के लिए मजबूर करने के लिए सोच सकता हूं, रिश्ते को एक से कई लोगों तक एक व्यक्ति से व्यक्तिगत रूप से परिवर्तित करने के लिए, एक-से-कई PersonAddress को पता और PersonAddress के लिए एक और क्लास एलिमेंट बनाएं, जो व्यक्ति और पते पर कई-से-एक मैपिंग वापस करता है।
ऐसा लगता है कि अतिरिक्त काम की तरह है और मैं वास्तव में अतिरिक्त काम से बचना चाहता हूं।
क्या कोई बेहतर उपाय सुझा सकता है?
धन्यवाद!
आप किसी व्यक्ति के पते और पते को कैसे जोड़ रहे हैं? चूंकि आपके पास व्यक्ति अकादेंट के लिए कोई डोमेन ऑब्जेक्ट नहीं है, तो फिर उन संबंधों के संपादन व्यक्ति या पते में से एक हो जाना चाहिए, नहीं?
यदि ऐसा है, तो ऑडिटिंग व्यक्ति के हिस्से के रूप में होती है- या पता-ऑडिटिंग।
उदाहरण के लिए, व्यक्ति में:
वर्ग व्यक्ति {निजी सूची & lt; पता & gt; addedAddresses; निजी सेट & lt; पता & gt; पतों; । । । सार्वजनिक शून्य जोड़ने के लिए एड्रेस (एड्रेस एड) {addAddresses.add (toAdd); addresses.add (TOADD); }} तब, जब ऑडिटिंग व्यक्ति, जोड़ा प्रविष्टियां दर्ज की गई प्रविष्टियां रिकॉर्ड करें, यदि यह खाली नहीं है।
बेशक, यह बहुत आसान है (हटाए जाने के साथ क्या करना है ? पते के संपादन के साथ?) लेकिन आपके उदाहरण में आगे बढ़ने के लिए अधिक नहीं है।
Comments
Post a Comment