2015-07-15 5 views
5

के साथ जेनरेट किया गया है मेरे पास ओरेकल 11 एक्सई पर एक डेटाबेस है और मेरे सभी टेबल में प्राथमिक कुंजी हैं जो NUMERIC(22,0) हैं। मैंने ग्रहण में Hibernate tools के साथ मॉडल कक्षाएं उत्पन्न की हैं। दुर्भाग्य से, सभी NUMERIC फ़ील्ड BigDecimal एस के रूप में लागू किए गए हैं। यहां तक ​​कि INT कॉलम का प्रतिनिधित्व करने वाले फ़ील्ड भी बदल दिए गए हैं। मैंने कुछ रिवर्स इंजीनियरिंग की कोशिश की, लेकिन ऐसा लगता है कि मेरे मामले में काम नहीं करना है।ओरेकल डीबी के मॉडल वर्गों में पीके प्रकार बदलें, हाइबरनेट

मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

0

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

<sql-type>jdbc-type="NUMERIC" precision="22" hibernate-type="Long"</sql-type> 

यह भी देखें: http://omtlab.com/java-hibernate-reverse-engineering-eclipse-tutorial/

+0

यह काम नहीं कर रहा है। यह उत्तर पहले से मौजूद है स्टैक – xenteros

0

बेहतर होगा कि तुम अपने आईडी के लिए BIGINT बजाय NUMERIC(22,0) का उपयोग करें। फिर इकाइयों को फिर से उत्पन्न करें। जावा-आईडी Long प्रकार का होना चाहिए। यदि आपको मैन्युअल रूप से प्रकार को बदलना नहीं है। आम तौर पर आपको जेनरेट की गई इकाइयों को एक टेम्पलेट और अधिक संशोधनों की आवश्यकता होती है।

संदर्भ: Mapping SQL and Java Types

+0

मेरे लिए काम नहीं कर रहा है:/ – xenteros

+0

क्या काम नहीं कर रहा है? – Kai

+0

अभी भी बिगडिट से बिगडिचिमल उत्पन्न करता है – xenteros

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