I refered this page to Map Clob to String.
https://www.hibernate.org/76.htmlSome solutions did not work in oracle/weblogic, oracle/websphere but using
setCharacterStream in nullsafeset worked for both.
However, application gets stuck in a special case. The special case contains 2 Clobs to be saved.
The two Clobs get saved individually but not in one go.
Code:
public void nullSafeSet(PreparedStatement st, Object value,
int index) throws HibernateException, SQLException
{
if (value != null)
{
StringReader r = new StringReader( (String) value );
st.setCharacterStream( index, r, ((String) value).length() );
}
else
{
st.setNull(index, sqlTypes()[0]);
}
}
-------------------------------------------------- thread times out with following stack ------------------
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
oracle.net.ns.Packet.receive(Unknown Source)
oracle.net.ns.DataPacket.receive(Unknown Source)
oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:435)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9008)
weblogic.jdbc.wrapper.PreparedStatement.executeBatch(PreparedStatement.java:157)
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)