2010-04-02 28 views
35

मेरे पास मेरे जावा मॉडल पर एक एनम प्रकार है जिसे मैं डेटाबेस पर एक टेबल पर मैप करना चाहता हूं। मैं हाइबरनेट एनोटेशन के साथ काम कर रहा हूं और मुझे नहीं पता कि यह कैसे करना है। चूंकि मैंने जो उत्तरों खोजे थे वे पुराने थे, मुझे आश्चर्य है कि किस तरह से सबसे अच्छा है?हाइबरनेट एनोटेशन के साथ मैपिंग एनम प्रकार

अग्रिम

उत्तर

62

धन्यवाद आप @Enumerated एनोटेशन से कुछ और की ज़रूरत है? उदाहरण के लिए, निम्नलिखित enum:

public enum MyEnum { 
    VALUE1, VALUE2; 
} 

का इस्तेमाल किया और टिप्पणी की जा सकता है इस तरह:

private MyEnum myEnum; 
@Column(name="myenum") 
@Enumerated(EnumType.ORDINAL) 
public MyEnum getMyEnum() { 
    return myEnum 
} 

आप कैसे enum @Enumerated एनोटेशन के EnumType enum संपत्ति के साथ डेटाबेस में कायम किया जाना चाहिए निर्दिष्ट कर सकते हैं । EnumType.ORDINAL निर्दिष्ट करता है कि enum एक पूर्णांक मान के रूप में जारी रखा जाएगा। इधर, myEnumVALUE1 करने के लिए सेट,, 0 के रूप में कायम किया जाएगा VALUE2 1 के रूप में आदि

विकल्प निर्दिष्ट करने के लिए कि enum enum मूल्य उस क्षेत्र के लिए निर्धारित है के नाम का उपयोग कायम हो जाएगा EnumType.STRING उपयोग करने के लिए है। तो, पिछले उदाहरण पर लागू, फ़ील्ड myEnum से MyEnum.VALUE1VALUE1, आदि के रूप में जारी रहेगा

+0

धन्यवाद! मुझे लगता है कि यह वही है जो मैं खोज रहा था। मैं इसे कोशिश कर रहा हूं – Thiago

+0

मैं enum वर्ग के @Id फ़ील्ड के लिए क्या टाइप कर सकता हूं? – Thiago

+1

@ थियागो क्या? आपका enum आमतौर पर एक इकाई नहीं है, इसमें '@ आईडी' फ़ील्ड नहीं है। क्या आप अपना प्रश्न अपडेट कर सकते हैं यह दिखाने के लिए कि आप क्या कर रहे हैं? –

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