在同一事务中使用Hibernate获取存储在DB中的原始对象属性

时间:2013-06-08 18:45:40

标签: spring hibernate

我打开了hibernate事务并读取了对象。我没有商店改变了对象的一些属性。我希望将原始属性存储在DB中,但使用

Criteria cr = new Criteria(...);
cr.add(Restrictions.eq("id", id));
cr.setProjection(Projections.property("someProperty"));
cr.uniqueResult();

或使用getSession().get(id)重新加载整个对象。但结果我得到了更改的属性,如果我重新加载整个对象,我得到了更改对象的相同实例。如何使用相同的事务获取存储在DB中的原始对象属性,更改的对象必须保留更改的属性。 如何使用Spring事务注释来完成它?

1 个答案:

答案 0 :(得分:0)

您可以使用session.refresh()方法。请参阅文档:http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#objectstate-loading

但这会覆盖任何更改。我认为你可以在refresh之前克隆对象。