2012-11-07 121 views
0

我在事务中存在一些数据库操作。我正在设置实体对象,并尝试使用session.merge(object)保存它们。但由于某些约束交易失败。我提供了一个异常处理程序,我在其中再次设置同一个对象并尝试提交它。我的问题是,在失败的交易之后,我之前设定的价值是否仍然存在于对象中。再次提交失败的事务

+0

你为什么不试试它?据我所知,该对象不会改变。 –

回答

0

我没有看到事务回滚会改变实体状态的理由。回滚的整个想法是将系统重置为交易开始前的最后一个状态。

+0

我想问的是,一旦失败,我不会回滚事务。所以没有回滚的对象将保持完整的交易失败前设置的值? – Naman

+0

? AFAIK,一旦交易失败,交易总是回滚。这就是我们做交易的原因。全部或全部(=回滚) –