Java 从Hibernate 4.3.1切换到5.0.6,事务消失
我正在做一个Hibernate项目,我使用了Hibernate4.3.1的Netbeans库。然后我需要使用ApacheLucene进行全文搜索。为了能够使用Lucene,我需要切换到Hibernate 5.x jars。我可以定义一个新的Java 从Hibernate 4.3.1切换到5.0.6,事务消失,java,hibernate,netbeans,jar,transactions,Java,Hibernate,Netbeans,Jar,Transactions,我正在做一个Hibernate项目,我使用了Hibernate4.3.1的Netbeans库。然后我需要使用ApacheLucene进行全文搜索。为了能够使用Lucene,我需要切换到Hibernate 5.x jars。我可以定义一个新的Transaction对象,但是wasRollecBack类的Transaction方法不起作用。我在好几个地方用过这种方法,现在我被卡住了。当我看Hibernate 5.0.6的javadoc时,没有任何东西像org.Hibernate.transactio
Transaction
对象,但是wasRollecBack
类的Transaction
方法不起作用。我在好几个地方用过这种方法,现在我被卡住了。当我看Hibernate 5.0.6的javadoc时,没有任何东西像org.Hibernate.transaction
。有org.hibernate.engine.transaction
,但它也不起作用
当我回到4.3.1
wasrollledback
时,它正在工作,但这次我无法运行带有lucene库的项目。我很困惑 wasrollledback
方法不包括在Hibernate 5.0.6
版本事务
界面中
4.3.1
在方法中发生的版本被回滚
现有方法:
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
Enum常量和说明:
活动:事务已开始,但尚未完成
已提交:交易已成功完成
提交:状态代码,指示已开始提交的事务
两阶段提交协议的第二阶段,但尚未完成
这个阶段
提交失败:事务试图提交,但
失败了
已标记的\u回滚:事务已标记为仅回滚
未激活:交易尚未开始
回滚:事务已回滚
回滚:状态代码,指示处于
后退的过程
您所说的.wasrollledback不工作是什么意思?找不到符号。似乎不在那里。请检查我的答案。对不起,我有点忙。我看了你的答案,它奏效了。我看了javadoc,但似乎跳过了枚举。非常感谢。