के बजाय समानार्थी पर जेपीए एनटीई मेरे पास एक सीम 2.2 आधारित जावा ईई 5 वेब एप्लिकेशन है जिसमें जेपीए 1.0 इकाइयों के लिए मैब किए गए टेबल के समूह के साथ हाइबरनेट 3.3.3 के माध्यम से मैप किया गया है। विकास के दौरान यह टॉमकैट 6, ओरेकल 10 एक्सई और विंडोज 7 पर चल रहा है।तालिका
अब, हमारे पास ऑपरेशन विभाग द्वारा डेटा मॉडल को एक स्कीमा में सभी डेटाबेस ऑब्जेक्ट्स (myschema
) और एक स्कीमा के स्वामी के रूप में विभाजित करने का अनुरोध था एप्लिकेशन के डेटाबेस उपयोगकर्ता के रूप में कार्य करना (myschema_app
)।
- बनाने स्कीमा
myschema_app
- अनुदान वस्तु अधिकार सभी आवश्यक टेबल पर
myschema
(दोनों नियमित रूप से लोगों को और n: मीटर मध्यवर्ती तालिकाओं) से: और दृश्यों उपयोग के आधार पर (एक याselect
अधिक की तो मैं निम्नलिखित किया ,insert
,update
,delete
)myschema_app
को - निजी समानार्थी शब्द
myschema_app
में आदेश से पहले की तुलना में एक ही नाम का उपयोग करने में घोषित करने और छुपा अन्य स्कीमा का नाम उपसर्ग - परिवर्तन संपत्तिनई स्कीमा नाम को
persistence.xml
- में उपयोगकर्ता परिवर्तन/
context.xml
में बिलाव के डेटा स्रोत परिभाषा पासवर्ड जब मैं आवेदन शुरू करते हुए validate
को hibernate.hbm2ddl.auto
सेट होने, मैं एक अपवाद जब ढांचा EntityManagerFactory
बनाने की कोशिश करते मिल मुझे बता रहा है कि एक टेबल गुम है। जब मैं सीधे myschema_app
कनेक्ट के साथ एक एसक्यूएल उपकरण में एक चयन कथन निष्पादित करता हूं, तो सब कुछ ठीक काम करता है।
मुझे समझ में आया कि किसी अन्य तालिका पर जाने वाले समानार्थी का उपयोग एप्लिकेशन के लिए पारदर्शी है। क्या किसी को यह पता है कि मैंने क्या अनदेखा किया होगा?
कुछ त्वरित जवाब, 10 अंक अर्जित किए था। हां, मैंने पहले ही देखा है कि उस पैरामीटर को छोड़कर एप्लिकेशन काम करता है, लेकिन यह एक दयालुता है कि हाइबरनेट सत्यापन के दौरान समानार्थी का समर्थन नहीं करता है, क्योंकि मुझे लगता है कि स्टार्टअप पर स्कीमा को सत्यापित करना एक अच्छी बात है ताकि यह सुनिश्चित हो सके कि यह एप्लिकेशन फिट बैठता है । –
समस्या हाइबरनेट्स org.hibernate.tool.hbm2ddl.DatabaseMetadata कक्षा में है जहां तालिका प्रकार निजी स्थिर अंतिम स्ट्रिंग [] TYPES = {"तालिका", "दृश्य"} में हार्डकोड किए गए हैं; जहां यह वास्तव में निजी स्थिर अंतिम स्ट्रिंग [] TYPES = {"तालिका", "दृश्य", "ALIAS", "SYNONYM"} होना चाहिए; – user482745