Clob column are not getting updated, even if there is real updated in the Clob data, when we do merge operation

Description

Below is the hbm file snippet

<hibernate-mapping>
<class name="......OrderLineDTO"
table="ORDER_LINES" dynamic-update="true">
<id name="lineId" type="long" column="LINE_ID" length="15">
<generator class="sequence">
<param name="sequence">xyz</param>
</generator>
</id>
..................................
..................................
..................
<property name="installationDetailClob" type="clob" column="ORDER_LINE_ATTRIBUTES_MAP"
not-null="false" lazy="true" />
<property name="attathmentMetadataClob" type="clob" column="ORDER_ATTACHMENT_METADATA"
not-null="false" lazy="true"/>

<!-- Associations -->
<!-- bi-directional many-to-one association to OrderHeader -->

<many-to-one name="orderHeader"
class="......"
fetch="select">
<column name="HEADER_ID" not-null="true" length="15" />
</many-to-one>

<!--
bi-directional many-to-one association to SmartHand
-->
<set name="smartHands" inverse="true" lazy="false"
cascade="all,delete-orphan">
<key>
<column name="LINE_ID" /><!-- a foreign key in SMART_HANDS referencing the primary key of this table.
-->
</key>
<one-to-many
class="...................SmartHandDTO" />
</set>
</class>
</hibernate-mapping>

DAO Code snippet:

public void update(OrderHeaderDTO orderHeaderDTO)
throws DataAccessException {
getOrdersHibernateTemplate().merge(orderHeaderDTO);
}

1. Create a table with clob column and have some other columns. Have one column with timestamp.
2. Insert a record in to it.
3. Now create detached object with new operator and populate all the information programatically including pk. Populate clob column and timestamp with different data than already persisted data.
3. Now do merg operation on this object, we find only timestamp column is part of update query but not clob column.

Please let me know if you need any more details.

Environment

Spring2.5.6, Hibernate3.3.2, Weblogic10.3.1, Red Hat Linux, Oracle10G

Activity

Show:
S
November 16, 2010, 2:39 AM

This issue tested with Spring 3.0.0 and Hibernate 3.5.5-Final and ojdbc5 also. We are still facing the same issue.

Exception occured while saving xxx 4863
org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value: com.xxx.xxx.service.xxx.dto.XxxAttachmentDTO.attachmentData; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.xxx.xxx.service.xxx.dto.XxxAttachmentDTO.attachmentData
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:648)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.merge(HibernateTemplate.java:813)
at com.xxx.xxx.service.xxx.dao.XxxDAOImpl.update(XxxDAOImpl.java:207)
at com.xxx.xxx.service.xxx.dao.XxxDAOImpl$$FastClassByCGLIB$$7771e46c.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
at com.xxx.xxx.service.common.aspect.around.ResponseTimeProfilerAspect.profileResponseTime(ResponseTimeProfilerAspect.java:39)

S
November 16, 2010, 2:47 AM

This issue is happening even when the data present for insert record which is in a batch with some update records.

S
January 12, 2011, 1:36 AM

Guys can some one look at this issue and let us why the API is not working as expected

S
February 8, 2011, 2:27 AM

Thanks a lot Gail.

Steve Ebersole
March 21, 2011, 7:08 PM

Bulk closing stale resolved issues

Assignee

Gail Badner

Reporter

S

Fix versions

None

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Affects versions

Priority

Major
Configure