我使用Spring Data JPA开发Spring MVC应用程序。我构建了一个JPA存储库。
public interface AccessReportRepository extends JpaRepository<AccessReport, Long> {
}
我也在项目中使用Spring Data Mongo和JPA。
当我运行项目时,我收到此错误。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lastDateController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.innolabmm.software.mongotest.springrest.ReadingService com.innolabmm.software.mongotest.springrest.LastDateController.readingService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'readingService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.innolabmm.software.mongotest.springrest.AccessReportRepository com.innolabmm.software.mongotest.springrest.ReadingService.reportRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accessReportRepository': FactoryBean threw exception on object creation; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property flush found for type void
有没有人知道发生了什么?如果这有助于解决问题,我准备提供更多信息。提前谢谢。
答案 0 :(得分:2)
您使用的是Spring Boot吗?
在Spring Boot应用程序中尝试使用JPA和Mongo时,我遇到了同样的异常。我发现存储库总是由JPA和Mongo解释,导致问题,因为我的存储库专门扩展JpaRepository
。
我只想生成JPA存储库,因此将以下内容添加到Application入口点。
@EnableAutoConfiguration(exclude={MongoRepositoriesAutoConfiguration.class})
答案 1 :(得分:0)
如果您正在使用带JPA的MongoDB(我的JPA数据库是mysql),请执行以下操作:
@EntityScan(basePackages={"demo.mysql.domain"}) @EnableJpaRepositories(basePackages={"demo.mysql.dao"}) @EnableMongoRepositories(basePackages={"demo.mongo.dao"})
这是迄今为止我发现的最简单,最干净的方法(在通过docs挖掘之后),让MongoDB和Mysql在一个Spring Boot应用程序中运行。
这就是我尝试过的,有效的。您可以使用MongoTemplate或扩展CrudRepository而不是JpaRepository,或者其他任何东西,尝试它,它可能会起作用。