2009-06-02 6 views

उत्तर

43

@Lob ब्लॉब और CLOB (प्रकार के रूप में उपयोग स्ट्रिंग)

@Column(name = "FILEIMAGE") 
@Lob(type = LobType.BLOB) 
private byte[] fileimage; 
+40

हाइबरनेट संस्करण पर निर्भर, लॉब एनोटेशन में कोई प्रकार पैरामीटर नहीं हो सकता है। उद्धरण [यहां] (https://www.hibernate.org/398.html): @ लॉब में अब गुण नहीं हैं, लॉब प्रकार (सीएलओबी, बीएलओबी) अनुमान लगाया गया है। यदि अंतर्निहित प्रकार एक स्ट्रिंग या चरित्र की सरणी है तो सीएलओबी का उपयोग किया जाता है। अन्य बीएलओबी का उपयोग किया जाता है। – Fortega

+0

आपके त्वरित उत्तरों के लिए धन्यवाद दोस्तों। अनुक्रम महत्वपूर्ण है? @ कॉलम (नाम = "फ़ाइल", लंबाई = 1048576) @ लॉब निजी बाइट [] fileimage; –

+0

@ फोर्टेगा, आपके द्वारा प्रदान किया गया लिंक काम नहीं करता है। – gtiwari333

1

मैं JBoss 7 और जावा 7 में हाइबरनेट 4 का इस्तेमाल किया के लिए चाल करना चाहिए: अब तक मैं एक वर्ग है कि है , और मेरी तालिका में BLOB कॉलम का पता चला है जो मेरे पास हाइबरनेट 2 के लिए काम नहीं करता है। सौभाग्य से, मैंने इसे अन्य लोगों के समाधानों को पढ़कर हल किया। मेरा समाधान:

  1. डीबी में तालिका, स्तंभ अभी भी बीएलओबी में परिभाषित किया गया है; type="binary"
  2. जावा गेटर/सेटर में करने के लिए type="blob" से हाइबरनेट मानचित्रण बदलने के लिए, byte[] के बजाय BLOB (javax.sql) जावा कोड है जो मिलता है और इस स्तंभ को ठीक से सेट में
  3. बदलें का उपयोग कर। यदि इनपुटस्ट्रैम शामिल है, का उपयोग BLOB कॉलम को पढ़ने/लिखने के लिए करें; यदि java.sql.ResultSet का उपयोग करके डीबी से पढ़ना है, तो सुनिश्चित करें कि getBlob() विधि के बजाय getBytes() का उपयोग करें।
संबंधित मुद्दे