升级mongodb-driver-sync后Morphia createDatastore不兼容新MongoClient对象
解决办法
核心问题是你当前使用的Morphia版本未适配MongoDB 4.x+的新驱动API,仅支持旧的com.mongodb.MongoClient类型。以下是两个可行方案:
方案一:升级Morphia到兼容版本(推荐)
Morphia 2.x及以上版本已经适配了新的MongoDB驱动,支持直接传入com.mongodb.client.MongoClient对象。
如果用Maven管理依赖,更新Morphia的依赖配置:
<dependency> <groupId>dev.morphia.morphia</groupId> <artifactId>morphia-core</artifactId> <version>2.3.7</version> <!-- 可替换为最新稳定版 --> </dependency>
升级完成后,你原来的代码无需修改,直接就能正常运行:
client = MongoClients.create(settings); datastore = morphia.createDatastore(client, databaseName);
方案二:临时使用旧驱动API创建MongoClient(不推荐)
如果暂时无法升级Morphia,可以用旧的废弃API创建com.mongodb.MongoClient对象,但这会让你失去升级新驱动的优势,且后续可能面临更多兼容性问题:
// 旧版API,已废弃,仅临时应急使用 com.mongodb.MongoClient oldClient = new com.mongodb.MongoClient(new MongoClientURI("你的连接字符串")); datastore = morphia.createDatastore(oldClient, databaseName);
内容的提问来源于stack exchange,提问作者TimTwenny
相关产品推荐
相关产品推荐

