मेरे पास एक मौजूदा डीबी स्कीमा है जिसे मैं जेपीए/हाइबरनेट एनोटेशन के साथ ऑर्डर करने की कोशिश कर रहा हूं। स्कीमा को पर डिज़ाइन किया गया है ताकि क्लाइंट को तालिका में प्रत्येक पंक्ति के साथ अतिरिक्त जानकारी को अलग किया जा सके। एक कुंजी-मान पैटर्न का उपयोग करने के बजाय मौजूदा समाधान स्थापित समय पर गतिशील कॉलम की आवश्यक संख्या निर्धारित करता है, और तालिका को में गतिशील फ़ील्ड के लिए अतिरिक्त कॉलम जोड़ता है। असल में प्रत्येक तालिका में ज्ञात/निश्चित कॉलम और गतिशील कॉलम का समूह होता है।जेपीए/हाइबरनेट मैपिंग डायनामिक कॉलम ऑब्जेक्ट्स की सूची के रूप में
|table:X|
|id|known1|known2|dynamic1|dynamic2|..|dynamicx|
एक पैरामीटर तालिका को इंगित करता है जो टेबल अतिरिक्त गतिशील क्षेत्रों
|table:parameter|
|table|column|meta|
|x|dynamic1||
|x|dynamic2||
|x|dynamicx||
|y|dynamic15||
जेपीए इस मॉडलिंग में है, यह प्रत्येक मेज पर ज्ञात तय स्तंभों के लिए एक परिभाषा बनाने के लिए आसान है।
@Entity
@Table(name="x")
public class X
{
@Id
private Long id = null;
@Column(name="known1")
private Long known1 = null;
}
मैं एक वर्ग के रूप में पैरामीटर तालिका मॉडल, और फिर मानकों की एक सूची है करने के लिए अपने वर्गों में से प्रत्येक के लिए अनुमति देने की योजना है। मुझे यकीन है कि मुझे इस सूची ऑब्जेक्ट को मैप करने के बारे में कैसे जाना चाहिए ताकि विवरण एक ही तालिका में लिखे जाएं।
@Entity
@Table(name="x")
public class X
{
// @Column(name="x",class="X") ??????????
List<Parameter> dynamicColumns = null;
}
मेरा मानना है कि मैं गतिशील क्षेत्र के कॉलम नाम को सही ढंग से निर्धारित करने के लिए कस्टम नामकरण रणनीति का उपयोग कर सकता हूं। क्या यह मैपिंग का प्रकार भी संभव है?
मुझे आशा है कि आप डेटाबेस बदलने में सक्षम हैं है ... यह एक स्कीमा है कि कुछ सामान्य जरूरत की तरह लगता है। इस प्रश्न के लिए – Zoidberg
मान लें कि मैं नहीं कर सकता। मुझे लगता है कि मैं ईंट की दीवार मारने के करीब हूँ। – emeraldjava