Java 为什么AuditReader可以';不能在存储库中自动连接

Java 为什么AuditReader可以';不能在存储库中自动连接,java,spring-boot,hibernate-envers,Java,Spring Boot,Hibernate Envers,在我的springbootapp中,我有以下存储库:- @Repository public class RevisionRepository { private AuditReader auditReader; public RevisionRepository(AuditReader auditReader) { this.auditReader = auditReader; } } 当我运行此应用程序时。我得到了这个错误:- 启动ApplicationContext时出错

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

@Repository
public class RevisionRepository {

private AuditReader auditReader;

public RevisionRepository(AuditReader auditReader) {
    this.auditReader = auditReader;
  }
}
当我运行此应用程序时。我得到了这个错误:-

启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。 2020-12-2421: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());
  }
}

将@Autowired置于专用AuditReader AuditReader上;您应该手动创建AuditReaderbean。有关建议,请参见示例@kmplzz thx。它解决了我的问题。