2012-10-18 11 views
5

प्रत्येक जेपीए-प्रदाता (कम से कम हाइबरनेट, एक्लिपेलिंक और ओपनजेपीए) जेपीए इकाई वर्गों के आधार पर डीडीएल-स्कीमा बनाने की संभावना देता है। लेकिन प्रत्येक डेटाबेस प्रबंधन प्रणाली के अपने डेटा प्रकार होते हैं।जेपीए मानचित्रण जावा प्रकार डेटाबेस प्रकार

तो जेपीए-प्रदाता कैसे तय करते हैं कि कौन सा एसक्यूएल डेटाटाइप चुना जाएगा। (मुझे लगता है कि यह प्रदाता विशिष्ट होगा)। क्या String->varchar(xx), boolean->tinyint जैसे मैपिंग हैं और इसी तरह। लेकिन फिर यह मैपिंग प्रत्येक डेटाबेस के लिए मौजूद होना चाहिए, है ना? क्या कोई मुझे सही दिशा में रख सकता है? मैंने हाइबरनेट स्रोत कोड में खोज की लेकिन मुझे सही कोड स्निपेट नहीं मिला।

धन्यवाद!

+2

हाइबरनेट के लिए MySQLDialect क्लास का स्रोत कोड देखें – Reddy

उत्तर

1

तो यह मानचित्रण प्रत्येक डेटाबेस के लिए मौजूद होना चाहिए, है ना?

आप सही हैं। डायलेक्ट में निर्दिष्ट किया गया है जिसका उपयोग डीबी कनेक्शन में किया जा रहा है।

जो कुछ के लिए मैं इस जानकारी खोज की है डीबी जो आप का उपयोग करें और एक ही java types -> db types की मैपिंग शामिल होना चाहिए के लिए बोली ड्राइवर अंदर समझाया गया है।

Here आप कन्स्ट्रक्टर में मैपिंग देख सकते हैं।

0

Dialect कक्षा और उसके कार्यान्वयन देखें।

चीयर्स,

0

प्रत्येक डीबीएमएस के लिए हाइबरनेट बोली बनाए रखता है। जो hibernateX.jar में उपलब्ध है।

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