为什么无法在存储库中自动装配 AuditReader

问题描述

在我的 springbootapp 中,我有以下存储库:-

@Repository
public class RevisionRepository {

private AuditReader auditReader;

public RevisionRepository(AuditReader auditReader) {
    this.auditReader = auditReader;
  }
}

当我运行这个应用程序时。我收到此错误:-

启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序。 2020-12-24 21:09:15 -


应用程序无法启动


说明:

com.howtodoinjava.demo.repository.RevisionRepository 中构造函数的参数 0 需要一个无法找到的类型为“org.hibernate.envers.AuditReader”的 bean。

操作:

考虑在您的配置中定义一个“org.hibernate.envers.AuditReader”类型的 bean。

我怎样才能做到这一点?

解决方法

这解决了我的问题。希望对其他人有所帮助:-

@Configuration
public class RevisionConfiguration {

@Autowired
private AuditReader auditReader;

private final EntityManagerFactory entityManagerFactory;

public RevisionConfiguration(EntityManagerFactory entityManagerFactory) {
    this.entityManagerFactory = entityManagerFactory;
}

@Bean
AuditReader auditReader() {
    return AuditReaderFactory.get(entityManagerFactory.createEntityManager());
  }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...