jpa - Hibernate @Enumerated mapping -
हाइबरनेट जब मैं enum इस मुद्दे पर काबू पाने का एक तरीका ऐन्युम प्रकार को एकल वर्ण (जैसे धन्यवाद। इन दो लेखों की जांच करें - और वे एक कस्टम यूज़रटाइप द्वारा समस्या का समाधान करते हैं। @ नामांकित एनोटेशन प्रदान करता है जो दो प्रकार के
Enum मैपिंग का समर्थन करता है या तो
ORDINAL या
STRING का उपयोग कर रहा है। जब हम
EnumType.STRING का इस्तेमाल करते हैं, तो यह
Enum के "नाम" को लेता है और
toString () Enum का प्रतिनिधित्व नहीं करता है। परिदृश्यों में यह एक समस्या है जहां डेटाबेस कॉलम में केवल एक वर्ण शामिल होता है। उदाहरण के लिए, मेरे पास निम्न Enum है:
सार्वजनिक enum status {OPEN {@Override सार्वजनिक स्ट्रिंग toString () {return "O";}}, WAITLIST {@Override सार्वजनिक स्ट्रिंग toString () {Return "W";}}, COMPLETE {@Override सार्वजनिक स्ट्रिंग toString () {return "C";}}}
status.OPEN < / Code> का उपयोग करके
@Enumerated (EnumType.STRING) , मान है कि हाइबरनेट डाटाबेस में स्टोर करने की कोशिश करता है OPEN। हालांकि, मेरे डेटाबेस कॉलम में केवल एक अक्षर होता है और इसलिए यह एक अपवाद फेंकता है।
STATUS.O ,
STATUS.W के बजाय
STATUS.OPEN ,
STATUS.WAITLIST )। हालांकि, यह पठनीयता कम कर देता है पठनीयता को बनाए रखने के लिए कोई भी सुझाव ऐनम को एक एकल वर्ण स्तंभ में मैप करने के साथ-साथ
Comments
Post a Comment