fal*_*ojr 6 bson spring-data spring-data-mongodb spring-boot
我最近迁移了一个项目的Spring Boot版本,从1.X版本升级到2.X版本。但是,这会导致使用org.bson.Document(using PojoCodecProvider)恢复持久对象时出现问题,因为它们没有该_class字段。
我按如下方式保留我的信息(我需要保存我的所有实例以便以后检索它们):
Map<String, Object> outbound = new HashMap<>();
// Add multiple objects/instances of different types
log.setOutbound(new Document(outbound));
Run Code Online (Sandbox Code Playgroud)
我的Log实体/文档基本上是这样的:
public class Log {
private ObjectId id;
private Document outbound;
// Getters ans Setters
}
Run Code Online (Sandbox Code Playgroud)
当我尝试恢复持久化对象并转换为它们的特定类型时会出现问题:
Log log = this.logRepository.findById("ID_HERE");
Document outbound = lastTracking.getOutbound();
MyType = outbound.get("myTypeKey", MyType.class); //A cast exception occours here!
Run Code Online (Sandbox Code Playgroud)
分析 Spring Boot 版本 1 和 2 中保存的数据之间的差异,我发现最新版本停止记录_class字段,查找存储在我的Document( Log#outbound) 中的实例。
有没有人遇到过这个问题?非常感谢您提前!
更新:我创建了一个模拟这个问题的简单存储库:
https://github.com/falvojr/stackoverflow-61560293
的应用类具有所有的配置和执行流,以及说明性注释。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |