我正在将一个Web应用程序从JDO迁移到JPA。以前我有一个会话终身请求,但我只是在需要更新时才开始交易。
也许我错过了显而易见的事情,但我无法通过Hibernate / JPA看到这样做的方法。
我想要的应用程序流程如下所示:
Session session = sessionFactory.openSession();
....
Foo f = session.get(Foo.class, fookey);
....
if(updateDesired)
{
session.beginTransaction();
f.setField(value);
session.getTransaction().commit();
....
Foo b = session.get(Foo.class, fookey); // should be what was just written to db.
}
session.close();
Hibernate JPA可以实现吗?
我曾尝试在请求开始时打开一个事务,并在最后提交,但是我的代码所做的许多假设都被这种方法视为无效。