2

如果我执行以下操作

session.getTransaction().rollback();

那么是否可以/可以开始在同一个会话对象上调用保存/更新/删除等?在Hibernate Session/Transaction API或 Hibernate 参考文档中找不到答案。

还是您建议我关闭该会话对象,打开一个新会话并开始一个新事务?

4

2 回答 2

3

我说关闭会话并打开一个新会话。Hibernate 并不以容忍滥用其会话而闻名。它可能会稍微损害性能,但它可能会防止出现错误。

尤瓦尔=8-)

于 2009-03-25T11:14:59.330 回答
0

从数据库的角度来看,我不确定这是否可行/可行,但是编写原子代码对于可读性来说要好得多。您甚至可以重用模板方法的结构来忘记围绕您的事务的布线。

于 2009-03-25T11:03:44.897 回答