2010-06-11 13 views
7

मैं एक जावा वेब एप्लिकेशन विकसित कर रहा हूं जो ओरेकल 11 जी डेटाबेस में स्थायी इकाइयों के लिए हाइबरनेट (एनोटेशन-आधारित) का उपयोग करता है। डीबीए ने टेबल के लिए समानार्थी बनाए और अनुरोध किया कि मैं भौतिक तालिकाओं के बजाय इन समानार्थी शब्दों का उपयोग करता हूं। (उदाहरण: तालिका "Foo" समानार्थी "S_Foo" है)हाइबरनेट स्कीमा सत्यापन ओरेकल तालिका पर विफल रहता है समानार्थी शब्द

यदि मेरे पास "hibernate.hbm2ddl.auto = validate" सक्षम है, तो अनुप्रयोग "अनुपलब्ध तालिका: S_Foo" के साथ स्टार्टअप पर विफल रहता है। अगर मैं सत्यापन बंद कर देता हूं, तो ऐप ठीक से शुरू होता है और ठीक से काम करता है। मेरा अनुमान है कि हाइबरनेट केवल भौतिक तालिकाओं के खिलाफ जांचता है और समझा नहीं जाता है कि एक तालिका मौजूद है या नहीं।

क्या समानार्थी के साथ हाइबरनेट स्कीमा सत्यापन सक्षम करने का कोई तरीका है? क्या मैं एक भौतिक तालिका और एनोटेशन में समानार्थी दोनों निर्दिष्ट कर सकता हूं? मैं उस अतिरिक्त सुरक्षा जांच को प्राथमिकता देता हूं कि एप्लिकेशन प्रारंभ होने पर तालिका संरचना सही है।

+0

क्या आप पूर्ण स्टैक ट्रेस पोस्ट कर सकते हैं और हाइबरनेट, जेडीबीसी ड्राइवर और बोली के संस्करणों का भी उल्लेख कर सकते हैं। –

+0

क्या समानार्थी शब्द सार्वजनिक समानार्थी शब्द के रूप में बनाए गए थे, या उपयोगकर्ता द्वारा स्वामित्व समानार्थी शब्द जो हाइबरनेट लॉग इन करते हैं? यह परिणाम को प्रभावित कर सकता है। (या यह नहीं हो सकता है) –

उत्तर

0

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

1

hibernate.hbm2ddl.auto=validate से hibernate.hbm2ddl.auto मान = "" तो यह असफल नहीं होगा।

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