Spring バージョン 3.0.2 で Hibernate Tools 3.2.1.GA を使用しています。次のように、タイプのOracle(10g)データベースフィールドにデータを挿入しclob
ます。
Clob c=Hibernate.createClob(request.getParameter("someTextFieldValueOnJSPPage");
pojoObj.setSomeClobProperty(c);
それは問題なく動作しますが、 CKEditorを使用してデータのストリームを挿入しようとすると、 JSP ページのデモ (CKEditor は単に HTML 要素をレンダリングします) に<textarea></textarea>
は、フォーマットされたテキストや画像、フラッシュなどが含まれる可能性があり、次の例外がスローされます。 .
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 ドライバーの問題ですか、それとも他の問題ですか? を使用してojdbc14.jar
いOracle JDBC Driver version - 9.0.2.0.0
ます。
アップデート:
Clob
タイプを使用するエンティティの 1 つは
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.
}
私の Spring コントローラー クラスでは、次のコードを使用してClob
、Oracle の型に挿入を実行しています。
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
は単に であり、 JSPページで送信ボタンがクリックされたときに呼び出される Spring コントローラ クラスMap model
のメソッドの正式なパラメータです。submit()
Springコントローラークラスで次の簡単なメソッドを使用してデータを取得しています
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();
}
ここで述べたようにしようとしましたが、役に立ちませんでした(その質問で指定されたのと同じ例外に直面しています)。