我正在通过休眠用以下代码更新记录:
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
User u = (User) session.get(User.class, userId) ;
u.fooBar = newFooBar;
session.update(u);
session.getTransaction().commit();
当我执行此代码时,我可以在数据库中看到fooBar
该用户的列的值已更改。但是,在将来的请求中,当进行查询以获取相同的内容时User
,其fooBar
值将与更新前的值相同。如果重新启动Web服务器,则值将更新。
Hibernate是否只是在缓存旧值?更新对象时,如何强制它更新其缓存值?
如果启动每个servlet时都会获得一个新的事务,并在完成后将其关闭,则应该获取最新的数据。
执行此操作的代码是getCurrentSession()。beginTransaction()和t.commit()或t.rollback()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句