2012-12-27 34 views
0

我正在使用以下方法来更新对象,但它不执行任何操作。奇怪的是,它也不会抛出任何错误。HibernateTemplate()。update(object)不更新数据库

public void updateObject(Object object) { 
    getHibernateTemplate().update(object); 
} 

我使用的一个映射的复合ID如下所示:

<composite-id class="com.company.project.model.ObjectPK" mapped="true"> 
    <key-property name="col1" type="string" column="COL1"/> 
    <key-property name="col2" type="string" column="COL2"/> 
</composite-id> 
<property name="col3" type="string" column="COL3"/> 

我读的地方,我需要尝试更新之前获取的对象。这是我需要在这里做的吗?

+0

请显示您的交易边界。您可能还需要查看生成的sql以及是否有任何异常被抛出。 – Parvez

回答

2

documentation指出您可以用这种方式更新“给定persistent实例”,因此您需要首先获取对象并对返回的实例进行操作。

+0

你的建议指出了我的问题。在我的特殊情况下,我最终使用了'HibernateTemplate.merge()'方法。 – bsingh

0

更新不起作用。你必须在交易中。既然你没有提到他们的任何事情,我想你不是正确的managing your transactions