猿问

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

我有一个 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。

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


慕婉清6462132
浏览 144回答 2
2回答

长风秋雁

我最好的猜测是你不小心将 spring-data 版本提升到更新的版本,这对Repository界面增加了一些破坏性的变化。该findOne方法被重构为Optional<T> findById(ID primaryKey);.&nbsp;您可以通过验证抱怨该findOne方法的存储库是否公开了一个findById方法来检查是否是这种情况。检查这一点的另一种方法是查看依赖关系树。

慕仙森

非常感谢你们所有人。事实上,问题在于不兼容的库的混合。我添加了正确的版本,一切正常:)
随时随地看视频慕课网APP

相关分类

Java
我要回答