2011-03-10 12 views
7

मैं ऐसा कैसे कर सकता हूं जेपीए (मैं हाइबरनेट का उपयोग करता हूं) बिना हस्ताक्षर किए गए कॉलम के कॉलम बनाता है? वर्तमान में मेरे सभी आईडी कॉलम हस्ताक्षरित हैं।जेपीए और हाइबरनेट में बिना हस्ताक्षर किए गए इंट

+3

असाइन किए गए एसक्यूएल प्रकार, या जावा प्रकार? जावा में मूल हस्ताक्षरित संख्या प्रकार नहीं हैं। यदि आप एक हस्ताक्षरित SQL प्रकार का उपयोग करना चाहते हैं, तो आपको इसे पर्याप्त रूप से बड़े (हस्ताक्षरित) जावा प्रकार पर मैप करना होगा। उदाहरण के लिए, एक हस्ताक्षरित 32-बिट पूर्णांक प्रकार को एक (हस्ताक्षरित) जावा 'लंबे' में संग्रहीत किया जाना होगा। –

+0

मैं हस्ताक्षरित एसक्यूएल प्रकारों का उपयोग करना चाहता हूं। – Laures

+1

फिर उत्तर जावा को 'लंबे' फ़ील्ड में मैप करना है। –

उत्तर

13

columnDefinition property on the @Column annotation का उपयोग करना चाहिए।

private long foo; 

@Column(columnDefinition = "UNSIGNED INT(11)") 
public long getFoo() 
{ 
    return foo; 
} 

N.B.: एसक्यूएल प्रकार पर एक कुल अनुमान ले रहा है आप के लिए जा रहे हैं सभी डेटाबेस नहीं (जैसे SQL सर्वर, मुझे लगता है) हस्ताक्षरित int प्रकार का समर्थन करते हैं।

+0

MySQL में "UNSIGNED" शब्द ** ** "INT (11)" के बाद ** आना चाहिए। – naXa

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