0 Replies Latest reply on Feb 9, 2008 3:07 PM by viniciuscarvalho

    Hibernate 3.2.3 update large columns problem

    viniciuscarvalho

      Hibernate Version: 3.2.3
      Hibernate Entity Manager:3.2.1.GA
      Hibernate Annotations:3.2.1.GA


      <persistence>
       <persistence-unit name="WSHPU">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>OracleDS</jta-data-source>
       <properties>
       <property name="hibernate.connection.dialect" value="org.hibernate.dialect.OracleDialect"/>
       <property name="hibernate.Log" value="DefaultLevel=WARN, Tool=INFO"/>
       <property name="hibernate.show_sql" value="true"/>
       <property name="hibernate.format_sql" value="true" />
       <property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
       <property name="hibernate.jdbc.batch_size">0</property>
       </properties>
       </persistence-unit>
      </persistence>
      


      Hello there! I'm facing a really annoying problem here. I have table with a CLOB column mapped to a String property on my class.

      At the beginning I had problems persisting it, due to batch size, so (as shown above) I've it set to 0.

      I have no problems persisting it, but when I try to update the entity, when the String is over a certain limit (could not find how many chars :( ) Hibernate ignores the value and is setting the column as null. I've tested it several times, and happens only for big strings (not that big actually, I believe over 4096 chars)

      It is possible to check at the log, that hibernate seems to be skipping one column (there's no binding for column #2):

      2008-02-09 16:59:57,791 TRACE [org.hibernate.jdbc.AbstractBatcher] preparing statement
      2008-02-09 16:59:57,792 TRACE [org.hibernate.persister.entity.AbstractEntityPersister] Dehydrating entity: [com.synos.wsh.model.persistence.WSHMessage#3601]
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.StringType] binding 'FFC7EE337F00000100D75C473DDDC54C' to parameter: 1
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.CalendarType] binding '2008-02-09 16:59:28' to parameter: 3
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.CalendarType] binding '2008-02-09 16:59:30' to parameter: 4
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.CalendarType] binding '2008-02-09 16:59:57' to parameter: 5
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.TimestampType] binding null to parameter: 6
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.IntegerType] binding '407' to parameter: 7
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.IntegerType] binding '0' to parameter: 8
      2008-02-09 16:59:57,792 TRACE [org.hibernate.type.LongType] binding '3601' to parameter: 9
      2008-02-09 16:59:57,800 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
      


      Any ideas?

      Best regards