栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Jackson向Java Mongo DBObject进行有效的POJO映射

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Jackson向Java Mongo DBObject进行有效的POJO映射

您可能可以使用Mixin批注来注释POJO和

BasicDBObject
(或
DBObject
),因此批注不是问题。由于
BasicDBOject
是地图,因此可以
@JsonAnySetter
在put方法上使用。

m_objectMapper.addMixInAnnotations(YourMixIn.class, BasicDBObject.class);public interface YourMixIn.class {    @JsonAnySetter    void put(String key, Object value);}

由于对MongoDB Object零经验,这就是我能想到的一切。

更新:
MixIn本质上是一种杰克逊机制,用于在不修改所述类的情况下向类添加注释。当您无法控制要编组的类时(例如当它来自外部jar时),或者当您不想使用注释使类混乱时,这是一个完美的选择。

在这里,您说的是

BasicDBObject
实现
Map
接口,因此该类具有
put
map接口定义的method
。通过向该方法添加@JsonAnySetter,您可以告诉Jackson,当他自省了使用该方法将属性插入对象的类后,只要发现不知道的属性。关键是属性的名称,值是属性的值。

所有这些加在一起使得中间映射消失了,因为Jackson现在将直接转换为,

BasicDBOject
因为它现在知道如何从Json反序列化该类。使用该配置,您可以执行以下操作:

DBObject dbo = m_objectMapper.convertValue(pojo, BasicDBObject.class);

请注意,由于我不使用MongoDB,因此尚未进行测试,因此可能会有一些松散的结局。但是,对于相似的用例,我使用了相同的机制,没有任何问题。YMMV取决于类。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383088.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号