关联的实体管理器已关闭!休眠环境
The associated entity manager is closed! Hibernate envers
我正在使用 Hibernate envers 尝试从 Audit table 检索审计记录,但发现异常
关联的实体管理器已关闭!休眠。这是给出异常的代码。
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]
我会检查您 entityManager
的使用模式。您要么在某个时候缓存了一个打开的 EM 实例,并在其关闭后尝试重用它,要么该实例一开始就没有正确打开。无论哪种情况,这都表示用户错误,而不是 Envers 错误。
我正在使用 Hibernate envers 尝试从 Audit table 检索审计记录,但发现异常 关联的实体管理器已关闭!休眠。这是给出异常的代码。
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]
我会检查您 entityManager
的使用模式。您要么在某个时候缓存了一个打开的 EM 实例,并在其关闭后尝试重用它,要么该实例一开始就没有正确打开。无论哪种情况,这都表示用户错误,而不是 Envers 错误。