如何确定是否在当前会话中创建了实体?

时间:2012-05-03 09:04:30

标签: java hibernate

想象一下相当复杂的服务器调用跨越多个组件,所有组件都包含在单个事务中。一个组件可以使用saveOrUpdate创建新实体。另一个组件可以访问此实体,但需要知道它是在此会话中还是之前创建的。我怎样才能实现它?

理想情况下,寻找下面的wasCreatedInThisSession布尔调用:

public void myTransactionalMethod() {
    MyEntity e1 = session.load(MyEntity.class, 15);
    session.wasCreatedInThisSession(e1); // -> false
    MyEntity e2 = new MyEntity("Test");
    session.saveOrUpdate(e2);
    session.wasCreatedInThisSession(e2); // -> true
}

0 个答案:

没有答案