MongoDB中对象反序列化的一个小问题
2024-09-03 05:01:45
今天在mongoDB存取对象数据的时候,碰到一个小问题:对象的某一个字段类型是抽象类或者接口。在存入的时候没有问题。可是在读取的时候,因为没有详细类的信息,无法完毕对象的又一次构建。就会报错:
Can not construct instance of com.bp.samples.json.generics.xxx,
problem: abstract types either need to be mapped to concrete types, have custom
deserializer, or be instantiated with additional type information
at [Source:xxxxx]
搜索了一下。有一种方法是给父类加注解。标明继承该父类的全部详细类的名字,网址:
http://blog.csdn.net/java_huashan/article/details/46428971
可是这样的方法由一个局限性,假设我的详细子类是可拓展的,那么每次都要改动源码上面的注解。假设是父类是在框架里,在jar包中,可能就不妥了。
经人指点,找到还有一种比較好的方法,就是在http://wiki.fasterxml.com/JacksonPolymorphicDeserialization中提到的enableDefaultTyping一部分,在mongoDBclient初始化的时候objectMapper对象调用这种方法就能够做到又一次构建抽象类声明的成员变量。
像这样:mapper = new ObjectMapper();
mapper.enableDefaultTyping();
最新文章
- javaMd5加密
- 2014优秀的好用的20款免费jQuery插件推荐
- 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )
- Linux重置root密码步骤
- Linux crontab 命令详解
- laravel框架总结(三) -- 路径分析
- 数据库防火墙如何防范SQL注入行为
- JS Replace 全部替换字符 用法
- USACO全部测试数据
- Hibernate 缓存机制(转)
- JavaScript基础知识(一)
- 解决IIS无法启动w3svc
- ADO SQL手写分页
- BZOJ2038[2009国家集训队]小Z的袜子(hose)——莫队
- Ubuntu 16.04上搭建CDH5.16.1集群
- logmnr使用
- eclipse中运行tomcat提示端口被占的4种解决方案
- YII创建应用
- (一)Jmeter 简单的录制
- Maven Profiles 定义不同环境的参数变量