我的申请中有一个场景:
1.我从数据库中获取对象:
hql = "some hql query";
Query query = session.createQuery(hql);
return query.list();
2。用户对此对象进行更改 3.用户对更改不满意,并希望重新加载数据库版本的对象。 (一种“中止编辑'动作”
这是我撞墙的地方。当我第二次尝试获取对象时,hibernate给了我对已经在内存中的相同对象的引用 - 我可以通过调试模式中的比较对象id来判断。但是与DB版本相比,内存中的这些对象会发生变化 我如何强制hibernate从DB读取对象而不是让我参考内存中已经更改的版本?
答案 0 :(得分:1)
从Java Persistence 2.0规范:
3.2.5刷新实体实例
通过调用
refresh
方法从数据库刷新托管实体实例的状态 在它上面或通过级联刷新操作。