当前位置: 首页 > 面试题库 >

从Hibernate 4.3.1切换到5.0.6,事务消失了

袁秦迟
2023-03-14
问题内容

我正在开发一个Hibernate项目,使用了Netbeans的Hibernate 4.3.1库。然后,我需要使用Apache
Lucene进行全文搜索。为了能够使用Lucene,我需要切换到Hibernate 5.x
jars。我可以定义一个新Transaction对象,但是class
wasRollecBack方法Transaction不起作用。我在很多地方都使用过这种方法,但现在遇到了麻烦。当我查看Hibernate
5.0.6的javadoc时,没有类似的东西org.hibernate.transaction。有,org.hibernate.engine.transaction但也不起作用。

当我回到4.3.1 wasRolledBack正常工作时,但是这次我无法使用Lucene库运行项目。我很困惑。


问题答案:

wasRolledBack方法不包含在Hibernate 5.0.6版本Transaction接口
Here中。

4.3.1``wasRolledBack方法中发生的版本。

现有方法:

public interface Transaction {

    void begin();

    void commit();

    void rollback();

    TransactionStatus getStatus();

    void registerSynchronization(Synchronization synchronization) throws HibernateException;

    void setTimeout(int seconds);

    int getTimeout();

    void markRollbackOnly();

 }

我没有测试,但是可以使用该getStatus方法。

例:

    TransactionStatus transactionStatus = session.getTransaction().getStatus();
    if(transactionStatus.equals(TransactionStatus.ROLLED_BACK)){
        //action s.a :)
    }

编辑1:

TransactionStatus 枚举常量和说明:

活动 :事务已开始,但尚未完成。

COMMITTED :本次交易已成功竞争。

COMMITTING :状态代码,指示已开始两阶段提交协议的第二阶段但尚未完成此阶段的事务。

FAILED_COMMIT :事务尝试提交,但失败。

MARKED_ROLLBACK :已将事务标记为仅回滚。

NOT_ACTIVE :交易尚未开始

ROLLED_BACK :事务已回滚。

ROLLING_BACK :状态代码,指示正在回滚的事务。



 类似资料:
  • 我有一个Java 7项目,它大量使用Javascript编写各种功能的脚本。到目前为止,我一直使用Rhino作为脚本引擎。我现在想转到Java 8,这也意味着我将用Nashorn取代Rhino。 Nashorn与Rhino的兼容性如何?我可以将其用作直接替换,还是我可以预期我的一些脚本将不再工作,需要移植到新引擎?Rhino是否有Nashorn不支持的常用功能?

  • 我目前正在开发一款只使用2D图形的游戏。 在游戏中,我广泛使用android的来显示我的图形。我听说,使用硬件加速图形,我可以使用它来提高我的应用程序的性能,而不是使用当前的。 目前,我有一个扩展的类,当我自己的线程类扩展调用和方法时,它会更新和渲染游戏状态。线程基本上帮助我保持几乎恒定的FPS。 现在的问题是:我如何从更改为,并调用方法从线程更新和渲染游戏状态,以仍然控制FPS。我阅读了Open

  • Java(TM)SE运行时环境(构建1.8.0_102-B14) Java HotSpot(TM)64位服务器VM(构建25.102-B14,混合模式) 我知道jdk11不包含jre,但是我如何在java 11中从cmd运行java程序呢

  • Nerv 提供了比 React 更好的浏览器兼容性和更高的性能,与此同时也不会放弃 React 庞大的生态系统。兼容 React 生态系统是我们开发 Nerv 的重要目标之一。 假设我们有这样一段代码: var React = require('react'); var ReactDOM = require('react-dom'); class MyComponent extends Reac

  • 设置:默认ActiveMQ.XML。本地数据中心的3台服务器上的每台服务器一个ActiveMQ实例,远程数据中心服务器上的每个服务器一个Active MQ实例。所有3个1实例都在运行,但每个数据中心在任何给定时刻只有一个ActiveMQ实例是主实例。来自所有数据中心的所有实例的消息都将持久化到网络KahaDB,我们为每条消息配置了两次重试。 目标:保持数据中心之间的队列同步。 问题:要测试远程服务

  • 你好,我想导入我的android studio项目到Netbeas,但我得到这个错误与Gradle。