在同一会话中Hibernate多个对象更新

时间:2014-07-29 10:47:04

标签: java hibernate object orm persistent

使用Hibernate我需要通过调用例如更新多个对象。 updateDetails()函数如下所示:

function updateDetails(){   
        Session session = this.getSessionFactory().openSession();           
        Employee emp=(Employee )session.load(Employee.class, empId);
        emp.salary(2000);
        Account acc=(Account)session.load(Account.class, accId);
        account.setTotal(2000);
        Transaction tx=session.beginTransaction();      
        session.update(emp);
        session.update(acc);
        tx.commit();
        result=true;
        session.close();

}

这样做的最佳方式是什么?

在同一会话中更新相同或不同类型的多个对象会导致休眠问题吗?

1 个答案:

答案 0 :(得分:0)

为什么不呢。你可以做到这一点。 Hibernate允许。

由于您使用的是事务管理,因此答案取决于您的上下文。如果要保存两个对象而不管另外保存另一个对象,请在单个事务中更新它们。

如果您想成功保存整个信息,并希望在任何更新失败时还原所有内容,请将其保留为当前格式。