Java 由于非活动事务,Hibernate无法创建修订
当我试图使用hibernate和envers保存一个实体时,该实体仍存在于数据库中,但审核日志不存在,我得到以下异常:Java 由于非活动事务,Hibernate无法创建修订,java,spring,hibernate,hibernate-envers,Java,Spring,Hibernate,Hibernate Envers,当我试图使用hibernate和envers保存一个实体时,该实体仍存在于数据库中,但审核日志不存在,我得到以下异常: Caused by: org.hibernate.envers.exception.AuditException: Unable to create revision because of non-active transaction at org.hibernate.envers.event.spi.BaseEnversEventListener.checkIfTra
Caused by: org.hibernate.envers.exception.AuditException: Unable to create revision because of non-active transaction
at org.hibernate.envers.event.spi.BaseEnversEventListener.checkIfTransactionInProgress(BaseEnversEventListener.java:132)
at org.hibernate.envers.event.spi.EnversPostUpdateEventListenerImpl.onPostUpdate(EnversPostUpdateEventListenerImpl.java:34)
at org.hibernate.action.internal.EntityUpdateAction.postUpdate(EntityUpdateAction.java:264)
at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:211)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:582)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1282)
at org.springframework.orm.hibernate5.SessionFactoryUtils.flush(SessionFactoryUtils.java:144)
... 96 more
问题出在哪里?Hibernate执行的每个操作都必须在事务内部。您是否在引发错误的操作之前启动事务。您必须显示一些代码。刚刚注意到您正在使用Spring。如果您只是在执行hibernate代码的方法上添加
@Transactional
,它可能会工作。请注意,@Transactional
通常用于应用程序的服务/业务层。