与 hibernate 4 和 5 兼容的事务关闭语法

Transaction closing syntax compatible with hibernate 4 and 5

我有一个事务关闭语法在网络应用程序中运行了很长时间。 运行正在休眠 4.3。10.Final:

if(t!=null && !t.wasCommitted()) t.rollback();
if(s!=null) s.close();
// t is a org.hibernate.Transaction, s is a org.hibernate.Session

现在这个 webapp 将 运行 进入并更新环境,使用 hibernate 5.1。10.Final。当前代码给了我一个 java.lang.NoSuchMethodError: org.hibernate.Transaction.wasCommitted()Z 异常。

是否可以更新此代码并使其 运行在两个休眠版本中都可用?如果不是,我应该如何更改它以便它与 hibernate 5 一起工作?

可以使用 org.hibernate.Version.getVersionString() 检查您的 hibernate 版本,但在您的项目中拥有 2 个不同版本的 hibernate 库绝非易事(并且不推荐)。

我正在分支一个新版本的 webapp 并在此版本中更新 hibernate。