2013-02-28 5 views
8

स्थानीय रूप से मैं mysql का उपयोग, इसलिए जब मैंcolumnDefinition = "text" डेटाबेस

@Column(columnDefinition = "TEXT") 

दुर्भाग्य से आवेदन का उपयोग विभिन्न डेटाबेस पर भी चलाने के लिए है के सभी प्रकार के लिए, मुझे बताया नहीं किया गया है कि कौन सा बस "पर सब"।

क्या समान प्रभाव के साथ कुछ करना संभव है, लेकिन अधिकांश डेटाबेस में काम करना संभव है? मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

11

क्या कुछ इस तरह के बारे में:

@Lob 
private String someString; 

मुझे लगता है कि यह अधिक पोर्टेबल है और प्रभावी ढंग से पाठ या LongText डेटा प्रकार उत्पन्न करनी चाहिए।

+0

है में है Beaware, longtext 4 जीआईबी एचटी तक हो सकता है tp: //stackoverflow.com/questions/13932750/tinytext-text-mediumtext-and-longtext- अधिकतम- स्टोरेज- – robie2011

2

आप उपयोग @LOB आप युक्त DISTINCT (http://ora-00932.ora-code.com/)

मुझे लगता है कि समाधान अपने स्ट्रिंग के बाइट आकार पर निर्भर करता एसक्यूएल साथ ORA-00932 अपवाद होगा तो। अपने < 4000 बाइट्स हैं, तो आप का उपयोग कर @Column कोशिश कर सकते हैं (नाम = "...", लंबाई = 4000)

मैं डीबी comptibility कारण के लिए 4000 बाइट्स का सुझाव: Oracle करने के लिए

  • Oracle में ओरेकल 8 11g, प्रकार VARCHAR2 अधिकतम आकार 4000 है (ए 4 पेज प्रारूप)
  • z/OS के लिए डीबी 2 10 में, प्रकार VARCHAR अधिकतम आकार 32704
  • एसक्यूएल सर्वर 2012, प्रकार पाठ अधिकतम आकार 2,147,483,647 बाइट्स
+0

@Lob उस समय मेरे लिए काम करता था, लेकिन मैं भविष्य में परियोजनाओं में आपका विचार देखूंगा, उत्तर के लिए thx – akuzma

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