findOne方法无法使用两个数据源(MySQL和MongoDB)进行编译

时间:2018-10-30 00:27:26

标签: java mysql spring mongodb spring-boot

我有一个Spring boot(1.5.6)应用程序,其中包括一个单独的模块,其中具有将信息持久保存在MySQL数据库中的所有逻辑,到目前为止,一切正常。但是,尽管如此,对MongoDB中的一些文档(json)仍然存在新的要求,我已经添加了对Spring boot的build.gradle文件的依赖:

编译“ org.springframework.boot:spring-boot-starter-data-mongodb”

并且,在单独的模块中,这些依赖项:

编译'org.mongodb:mongo-java-driver:3.8.2' 编译'org.springframework.data:spring-data-mongodb:2.1.2.RELEASE'

当我尝试构建项目时,扩展CrudRepository(MySQL)的类中的所有findOne方法都会发生常见异常:

错误:找不到符号findOne

即使未实现任何MongoRepository。

有关此错误的任何想法/建议吗? 非常感谢。

2 个答案:

答案 0 :(得分:0)

我最好的猜测是您不小心将spring-data版本提高到了一个新版本,该版本在Repository界面中添加了一些重大更改。

findOne方法已重构为Optional<T> findById(ID primaryKey);。您可以通过验证天气来检查是否存在这种情况,抱怨findOne方法的存储库会公开findById方法。另一种检查方法是查看依赖关系树。

来源:spring-data-JPA

答案 1 :(得分:0)

非常感谢大家。确实,问题在于不兼容的库的混合。我添加了正确的版本,并且一切正常:)