सबसे पहले बुनियादी तथ्यों को लागू: जावा webapp, स्प्रिंग, हाइबरनेट, MySQL।एक हाइबरनेट आधारित अनुप्रयोग के लिए एक डेटा इतिहास/संस्करण समाधान (एक मोड़ के साथ)
स्थिति है कि मैं जैसे की एक जटिल ऑब्जेक्ट मॉडल है एक कार। यह कई ऑब्जेक्ट्स (इंजन, टायर, ...) से बना है जिसमें कई से एक और उनके बीच कई संबंध हैं।
अब कई कारें हैं, और हर कोई और फिर कोई कार की जांच करता है और निरीक्षण के की रिपोर्ट करता है। रिपोर्ट है कि कार कई हिस्सों को संदर्भित करता है उनके गुणों आदि प्रदर्शित
अब तक सिस्टम को अपडेट करने के लिए कार के और अपने हिस्से 'गुण एक बार वे प्रणाली में खिलाया गया है क्षमता का समर्थन नहीं किया। इसका मतलब है कि यदि चेसिस या टायरों की संख्या बदल दी गई है, तो पुरानी रिपोर्ट इस बदलाव को प्रतिबिंबित करेगी जो हम नहीं चाहते हैं।
अच्छा, अब इस सुविधा का अनुरोध किया गया है। कारों और उनके हिस्सों को संशोधित करने की आवश्यकता है और एक संस्करण इतिहास बनाया जाना है। पुरानी रिपोर्टों को भागों और उनके मूल्यों के पुराने संस्करणों को संदर्भित करने की आवश्यकता है।
मैं "Slowly changing dimensions" देख रहा हूं और ऐसा लगता है कि कार और उसके हिस्सों का संस्करण टाइप 6 दृष्टिकोण के साथ किया जा सकता है।
बात (मोड़) है कि मैं मुसीबत पता लगाना (शायद अपने सीमित हाइबरनेट अनुभव के कारण) हो रही है यह है:
मैं हाइबरनेट के साथ मेरी रिपोर्ट उदाहरणों कैसे इकट्ठा कर सकते हैं, ताकि वे का उल्लेख कार के प्रत्येक हिस्से के सही संस्करण? रिपोर्टों की तारीख है और कार भागों के प्रत्येक संस्करण में दिनांक सीमाएं होती हैं जब वे मान्य होते हैं, इसलिए मुझे लगता है कि मैं इसे कुछ जटिल एचक्यूएल/एसक्यूएल के साथ कर सकता हूं। लेकिन क्या हाइबरनेट के साथ ऐसा करने का कोई आसान, अधिक स्वचालित तरीका है?
यह हमारे द्वारा उठाए गए दृष्टिकोण से काफी अधिक था। – Janne