关联的实体管理器已关闭! Hibernate envers

问题描述 投票:0回答:1

我使用Hibernate envers试图从Audit表中检索审计记录,但看到异常The associated entity manager is closed! Hibernate envers。下面是出现异常的代码。

public void returnUserAudit(){
        AuditReader auditReader = AuditReaderFactory.get(entityManager);
        return auditReader.createQuery().forRevisionsOfEntity(UserDetails.class, true, true)
                .add(AuditEntity.property("userDetails.userId").eq(appId)).
                add(AuditEntity.property("userDetails.email").eq(deplymntId)).
                add(AuditEntity.property("status").eq("Approved")).
                addOrder(AuditEntity.revisionNumber().desc()).
                setMaxResults(recordLimit).getResultList();
}

java.lang.IllegalStateException: The associated entity manager is closed!
at org.hibernate.envers.internal.reader.AuditReaderImpl.checkSession(AuditReaderImpl.java:65) ~[hibernate-envers-5.3.10.Final.jar!/:5.3.10.Final]
at org.hibernate.envers.internal.reader.AuditReaderImpl.isEntityNameAudited(AuditReaderImpl.java:306) ~[hibernate-envers-5.3.10.Final.jar!/:5.3.10.Final]
at org.hibernate.envers.query.AuditQueryCreator.checkEntityAudited(AuditQueryCreator.java:346) ~[hibernate-envers-5.3.10.Final.jar!/:5.3.10.Final]
at org.hibernate.envers.query.AuditQueryCreator.forRevisionsOfEntity(AuditQueryCreator.java:169) ~[hibernate-envers-5.3.10.Final.jar!/:5.3.10.Final]
java hibernate hibernate-envers
1个回答
1
投票

我会检查你的使用模式 entityManager. 你要么是在某一时刻缓存了一个已打开的EM的实例,并试图在其被关闭后重新使用它,要么是该实例一开始就没有被正确打开。 不管是哪种情况,这都说明是用户的错误,而不是Envers的错误。

© www.soinside.com 2019 - 2024. All rights reserved.