0

我打开了休眠事务并读取了对象。我更改了没有存储的对象的一些属性。我想获取存储在数据库中的原始属性,但使用

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

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

4

1 回答 1

0

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

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

于 2013-06-08T18:52:50.677 回答