我正在尝试从旧版本的Hibernate(版本3)中更新一些代码。它使用Transaction了Hibernate 5中不再存在的两种接口方法。
Transaction
session.getTransaction().wasCommitted() session.getTransaction().wasRolledBack()
Hibernate 5中的等效功能是什么?
您似乎正在寻找session.getTransaction().getStatus()。例如,
session.getTransaction().getStatus()
session.getTransaction().getStatus() == TransactionStatus.COMMITTED session.getTransaction().getStatus() == TransactionStatus.ROLLED_BACK
您可能还需要检查TransactionStatus的文档,以查看交易状态的相对细粒度,因为您可能想要或需要比上述更多的包容性替代品。另外,请不要忽略TransactionStatus的方法,您可能会发现有帮助。例如,
TransactionStatus
session.getTransaction().getStatus().isOneOf( TransactionStatus.MARKED_ROLLBACK, TransactionStatus.ROLLING_BACK, TransactionStatus.ROLLED_BACK)