MongoDB中对象反序列化的一个小问题
2016-03-06 18:03
585 查看
今天在mongoDB存取对象数据的时候,碰到一个小问题:对象的某一个字段类型是抽象类或者接口。在存入的时候没有问题。可是在读取的时候,因为没有详细类的信息,无法完毕对象的又一次构建。就会报错:
http://blog.csdn.net/java_huashan/article/details/46428971
可是这样的方法由一个局限性,假设我的详细子类是可拓展的,那么每次都要改动源码上面的注解。假设是父类是在框架里,在jar包中,可能就不妥了。
经人指点,找到还有一种比較好的方法,就是在http://wiki.fasterxml.com/JacksonPolymorphicDeserialization中提到的enableDefaultTyping一部分,在mongoDBclient初始化的时候objectMapper对象调用这种方法就能够做到又一次构建抽象类声明的成员变量。
像这样:mapper = new ObjectMapper();
mapper.enableDefaultTyping();
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();
相关文章推荐
- ubuntu 12.04 Server 上安装 nodejs, MongoDB
- mongodb 的简单使用
- MongoDB为何要部署单机副本集
- MongoDB监控项--如何使用命令得到
- appfog下用客户端管理你的mongodb、mysql(类似)
- MongoDB安装
- mongodb常用命令
- mongodb3.2安装
- 使用MongoDB的MapReduce进行区域地震信息统计实验
- windows下的mongodb下载安装
- mongodb安装以及配置-win7+下载网盘
- 前端学习总结(九)MongoDB——最出色的文档型数据库
- mongodb集群搭建
- MongoDB 操作手冊CRUD插入
- mac 下安装 mongodb,Robommongodb
- 如何编译MongoDB?
- mongoDB复制集(Replica Set)
- 分布式mongodb集群---sharding(分片)+复制集
- HTML5+Activex+Singr+ABP+MongoDB
- mongodb3.x java 驱动 基本操作