0

当我们做一个

session.save()

在hiberbate方面它可能会抛出不同的异常。我们需要处理它们。我们应该怎么做?

我发现了 save() 的两个实现(在 SessionImpl 和 SessionDelegatorBaseImpl 中),在 SessionImpl 的 save() 中它会引发休眠异常。

谁能向我解释这些东西?

4

3 回答 3

1

大多数 Hibernate 异常都是RuntimeExceptions为了让您只有在需要时才应该处理。

因此,从 Hibernate 3.x 开始,Hibernate 抛出的所有异常都是未经检查的运行时异常的子类型,通常在应用程序中的单个位置处理。这也使任何 Hibernate 模板或包装 API 过时。

这可能有助于为什么休眠将 HibernateException 更改为(未选中的)RuntimeException

于 2013-04-29T08:36:27.790 回答
0

您可以捕获异常并抛出另一个更有意义的异常,然后在可以充分处理异常的适当层中捕获它。

于 2013-04-29T08:33:39.640 回答
0

如果您在保存时发现异常,您必须考虑回滚,当然这取决于您的应用程序需求。

于 2013-04-29T08:34:45.297 回答