2012-03-28 12 views
6

मेरे पास एक टेबल है जिसे मैंने पहले से ही हाइबरनेट में मैप किया है, मेरे पास पहले से ही कुछ डेटा है जिसे मैं खोना नहीं चाहता हूं। मुझे पता नामक नया कॉलम जोड़ने की जरूरत है, किसी भी विचार को हाइबरनेट में कैसे करना है?मौजूदा डेटा को खोए बिना हाइबरनेट का उपयोग करके मैप किए गए तालिका में कॉलम जोड़ें

अग्रिम धन्यवाद ..

+0

आपको [hbm2ddl] (http://www.jroller.com/eyallupu/entry/hibernate_s_hbm2ddl_tool) का उपयोग करना होगा –

उत्तर

0

संभावना आप हाइबरनेट उपयोग करने के लिए/अद्यतन डेटाबेस स्कीमा बनाने के लिए मजबूर नहीं कर रहे हैं। मुझे लगता है आप अपने विन्यास में कुछ इस तरह है:

<property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

बस परिवर्तन मान "मान्य", मैपिंग में परिवर्तन करते हैं और अलग से ALTER तालिका स्टेटमेंट्स को निष्पादित।

अन्य विकल्प "अद्यतन" का उपयोग करना है ताकि हाइबरनेट को आपकी तालिका संरचना को अपडेट करने का तरीका बताया जा सके। मैं इसे अपने हाथों में रखने और मैन्युअल रूप से डीडीएल एसक्यूएल निष्पादित करने का सुझाव देता हूं।

6

यदि आप वर्तमान टेबल हाइबरनेट द्वारा उत्पन्न होते हैं, तो आप पता कॉलम के लिए जावा इकाई वर्ग में पता संपत्ति जोड़ सकते हैं। फिर hibernate.hbm2ddl.auto प्रॉपर्टी को update पर सेट करें और SessionFactory अगली बार बनाया गया है जब हाइबरनेट स्वचालित रूप से इस कॉलम को बना देगा। hibernate.hbm2ddl.autoupdate पर हाइबरनेट आपके डेटाबेस में किसी भी डेटा स्टोर को नहीं बदलेगा।

या, आप टेबल संरचना को बदलने के लिए मैन्युअल रूप से SQL जारी कर सकते हैं और फिर पता कॉलम के लिए जावा इकाई वर्ग में पता गुण जोड़ सकते हैं।

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