aspose file tools*
The moose likes Object Relational Mapping and the fly likes Handling Clob in Hibernate 3 & DB2 8.1 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "Handling Clob in Hibernate 3 & DB2 8.1" Watch "Handling Clob in Hibernate 3 & DB2 8.1" New topic
Author

Handling Clob in Hibernate 3 & DB2 8.1

Markis
Greenhorn

Joined: Jun 04, 2007
Posts: 4
Hi,

Am using hibernate-3.2.4.sp1 & Database DB2 8.1. Having trouble inserting clob data into DB [able to read data successfully though]. Below is the SQL generated by Hibernate & Exception

Hibernate: select trvwxmldoc0_.XML_DOC_ID as XML1_6_0_, trvwxmldoc0_.DATA_CLOB as DATA2_6_0_ from CPC.TRVW_XML_DOC trvwxmldoc0_ where trvwxmldoc0_.XML_DOC_ID=?

Clob:: org.hibernate.lob.SerializableClob@da90c -- actual clob data

Hibernate: insert into CPC.TRVW_XML_DOC (DATA_CLOB, XML_DOC_ID) values (?, ?)

2007-06-04 10:18:56,625 WARN util.JDBCExceptionReporter - SQL Error: -423, SQLState: 0F001
2007-06-04 10:18:56,625 ERROR util.JDBCExceptionReporter - [IBM][CLI Driver][DB2/NT] SQL0423N Locator variable "1" does not currently represent any value. SQLSTATE=0F001

2007-06-04 10:18:56,625 ERROR .AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not insert: [com.insure3.db.vo.TrvwXmlDoc]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.insure3.db.dao.CustomDAO.persistInstance(CustomDAO.java:281)
at test.com.insure3.db.dao.CustomDAOTest.testPersistInstance(CustomDAOTest.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0423N Locator variable "1" does not currently represent any value. SQLSTATE=0F001

at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:275)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:217)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGenerator.java:449)
at COM.ibm.db2.jdbc.app.DB2Clob.length(DB2Clob.java:246)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.setClob(DB2PreparedStatement.java:5391)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.setClob(DB2PreparedStatement.java:5375)
at org.hibernate.type.ClobType.set(ClobType.java:50)
at org.hibernate.type.ClobType.nullSafeSet(ClobType.java:118)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1997)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2243)
... 30 more
2007-06-04 10:18:56,640 ERROR common.util - Caller ersist failed
Message ersist failed


I tried creating user type [StringClobType], but didn't work. Below is the mapping

<hibernate-mapping package="com.insure3.db.vo" auto-import="true" >
<class name="TrvwXmlDoc" table="TRVW_XML_DOC" schema="CPC">
<id name="xmlDocId" type="string">
<column name="XML_DOC_ID" length="42" />
<generator class="assigned" />
</id>
<!-- property name="dataClob" type="com.insure3.db.util.StringClobType"-->
<property name="dataClob" type="clob">
<column name="DATA_CLOB" />
</property>


I am in immediate need for a solution to this. Immediated responses would be much appreciated.

Thanks,
Chetan
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17257
    
    6

From Hibernate.org's wiki pages.

http://www.hibernate.org/76.html

Not sure if you are storing it in a String, but this and also the Hibernate Documentation page
http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#mapping-types-basictypes scroll down just a little bit to see clob and blob

HTH

Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Handling Clob in Hibernate 3 & DB2 8.1