当我们做一个
session.save()
在hiberbate方面它可能会抛出不同的异常。我们需要处理它们。我们应该怎么做?
我发现了 save() 的两个实现(在 SessionImpl 和 SessionDelegatorBaseImpl 中),在 SessionImpl 的 save() 中它会引发休眠异常。
谁能向我解释这些东西?
大多数 Hibernate 异常都是RuntimeExceptions
为了让您只有在需要时才应该处理。
因此,从 Hibernate 3.x 开始,Hibernate 抛出的所有异常都是未经检查的运行时异常的子类型,通常在应用程序中的单个位置处理。这也使任何 Hibernate 模板或包装 API 过时。
您可以捕获异常并抛出另一个更有意义的异常,然后在可以充分处理异常的适当层中捕获它。
如果您在保存时发现异常,您必须考虑回滚,当然这取决于您的应用程序需求。