में डेटा डालने के दौरान स्ट्रीम प्रकार का उपयोग बैचिंग में नहीं किया जा सकता है। मैं स्प्रिंग संस्करण 3.0.2 के साथ हाइबरनेट उपकरण 3.2.1.GA का उपयोग कर रहा हूं। मैं निम्नानुसार clob
प्रकार के ओरेकल (10 जी) डेटाबेस फ़ील्ड में डेटा डालने के लिए तैयार हूं।java.sql.SQLException: ऑपरेशन की अनुमति नहीं है: ओरेकल क्लोब डेटा प्रकार
Clob c=Hibernate.createClob(request.getParameter("someTextFieldValueOnJSPPage");
pojoObj.setSomeClobProperty(c);
यह सिर्फ ठीक काम करता है, लेकिन जब मैं एक CKEditor, demo मेरी JSP पेज पर उपयोग कर डेटा की एक धारा को सम्मिलित करने का प्रयास है कि स्वरूपित पाठ के साथ ही छवियों शामिल हो सकता है (CKEditor बस एक HTML <textarea></textarea>
तत्व renders), फ़्लैश आदि, यह निम्नलिखित अपवाद फेंकता है।
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not update: [model.Cms#1]
org.hibernate.exception.GenericJDBCException: could not update: [model.Cms#1]
java.sql.SQLException: operation not allowed: streams type cannot be used in batching
कैसे है कि अपवाद को हल करने? क्या यह Oracle driver problem या कुछ और है? मैं ojdbc14.jar
, Oracle JDBC Driver version - 9.0.2.0.0
का उपयोग कर रहा हूं।
अद्यतन:
संस्थाओं Clob
प्रकार का उपयोग करता है में से एक
public class Cms implements java.io.Serializable
{
private BigDecimal cmsId;
private Clob aboutUs; //I'm currently dealing with this property.
private Clob contactUs;
private Clob privacyPolicy;
private Clob returnPolicy;
private Clob shippingPolicy;
private Clob termsOfUse;
private Clob exchangeLinks;
private Clob disclaimer;
private Clob aboutProducts;
private Clob purchasingConditions;
private Clob faq;
//Parameterized constructor(s) along with the default one as and when needed.
//Getters and setters.
}
मेरी स्प्रिंग नियंत्रक वर्ग में, मैं प्रदर्शन करने के लिए निम्नलिखित कोड का उपयोग कर रहा है ओरेकल में Clob
प्रकार पर सम्मिलन।
Cms c=new Cms();
c.setCmsId(new BigDecimal(0));
c.setAboutUs(Hibernate.createClob(request.getParameter("txtAboutUs")));
session.save(c);
session.flush();
session.getTransaction().commit();
model.put("status", "1");
model.put("msg","Insertion done successfully.");
//setParameter(cb);
कहाँ model
बस एक Map model
, स्प्रिंग नियंत्रक कक्षा में submit()
विधि है जो जब एक सबमिट बटन JSP पेज पर क्लिक किया जाता है शुरू हो जाती है की एक औपचारिक पैरामीटर है।
मैं वसंत नियंत्रक वर्ग
private void getData(Map model)
{
Session session=NewHibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List<Cms>list=session.createQuery("from Cms order by cmsId desc").list();
model.put("list", list);
session.flush();
session.getTransaction().commit();
}
उल्लेख here रूप में, लेकिन कोई लाभ नहीं हुआ (में निर्दिष्ट के रूप में मैं एक ही अपवाद का सामना करना पड़ रहा हूँ करने के लिए क्या करने की कोशिश की में निम्नलिखित सरल विधि का उपयोग कर डेटा पुन: प्राप्त कर रहा हूँ यहसवाल)।
यह वास्तव में ओरेकल ड्राइवर समस्या थी। मैं 'ओरेकल जेडीबीसी चालक संस्करण - 9.0.2.0.0' का उपयोग कर रहा था। मैंने अभी [http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html) से एक नया संस्करण डाउनलोड किया है जो 'ओरेकल जेडीबीसी चालक संस्करण - 10.2.0.5 है। 0' जो सभी परिस्थितियों में ठीक काम करता है। – Tiny
आपको इसे उत्तर के रूप में पोस्ट करना चाहिए और इसे चिह्नित करना चाहिए। – pickypg
@Tiny अपने स्वयं के प्रश्न का उत्तर दें और फिर इसे उत्तर के रूप में चिह्नित करें। धन्यवाद। –