今天在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();

MongoDB中对象反序列化的一个小问题相关推荐

  1. java数组按某个值排序_Js--使用sort根据数组中对象的某一个属性值进行排序

    现货深度学习之tensorflow原理样本 87.45元 包邮 (需用券) 去购买 > Js--使用sort根据数组中对象的某一个属性值进行排序 博客说明 文章所涉及的资料来自互联网整理和个人总 ...

  2. SQL Server 中关于 @@error 的一个小误区

    原文:SQL Server 中关于 @@error 的一个小误区 在SQL Server中,我常常会看到有些前辈这样写: if(@@error<>0)ROLLBACK TRANSACTIO ...

  3. js sort方法根据数组中对象的某一个属性值进行排序(实用方法)

    js sort方法根据数组中对象的某一个属性值进行排序 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. var arr = [{name ...

  4. Oracle中删除数据的一个小技巧

    在我带的某个Project中,在开发阶段需要Reload相同的Data到Oracle中来进行测试,因此需要不断的删除数据,简单的Delete操作似乎就OK了,但其实不然.我们到知道建表的时候需要Tab ...

  5. python中template是什么意思啊_Python中Template使用的一个小技巧

    Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...

  6. C语言中定义整数的一个小疑问

    下面是一个关于任意整数逆序的C语言代码 #include<stdio.h> int main(){int x,digit,ret;printf("请任意输入一个整数\n" ...

  7. xlnx4.0中关于SPI-nor-flash的一个小bug

    最经搞关于zynq7000,用到了petalinux,其中用的内核版本为xlnx4.0.再处理nandflash问题是,发现如下问题,阅读关于与扩展地址操作的原代码,从纸面上看应该属于一个小bug.原 ...

  8. ajax 返回数组某个属性值,js中sort方法根据数组中对象的某一个属性值进行排序...

    1.一维数组排序 timeList=['2017-10-05','2017-10-01','2017-10-03','2017-10-02','2017-10-09']; timeList.sort( ...

  9. 使用js删除表格中的一行的一个小练习

    代码: <!DOCTYPE html> <html lang="ch"><head><meta charset="UTF-8&q ...

  10. Struts2配置文件中传递参数的一个小问题

    http://blog.csdn.net/CMTobby/article/details/1891120 最近在Struts2中配置action时,经常要在配置文件中给一个页面或者action传递若干 ...

最新文章

  1. 深度干货!如何将深度学习训练性能提升数倍?
  2. python100个必背知识-学Python必须背的42个常见单词,看看你都会吗?
  3. 矩阵分析与多元统计11 广义vec算子与devec算子
  4. WCF HelpPage 和自动根据头返回JSON XML
  5. 设计模式:接口隔离原则
  6. PHP通过PDO连接Microsoft Access数据库
  7. 2017.9.19 禁忌 失败总结
  8. matlab读取i o数据文件,Matlab 的数据文件读取
  9. 华为手机助手 linux,HiSuite-华为手机助手上线!从此再也不担心手机数据导不进Mac电脑啦!...
  10. https://www.icourse163.org/learn/PKU-1002534001?tid=1003136008#/learn/quiz?id=1003986014
  11. 除了加速上币,OKEx在DeFi热潮中还能做什么?
  12. Java关于跨年周数计算的问题解释,以及解决办法(附代码+图)
  13. 如何使用并且使用过滤器
  14. html5绘制火柴棒人物
  15. 半导体物理·笔记之④晶体中原子的电子状态——能带
  16. Word里的图片显示不全,只显示最下面的一小部分的解决办法
  17. 阿里云如何绑定域名(阿里云域名如何绑定ip)
  18. JavaScript 删除数组中为null的元素,过滤数组
  19. pdf转换成excel文件_将PDF文件转换为Excel
  20. springcloud五大神兽之Feign

热门文章

  1. 记一个单双引号的特别用法
  2. 动态新增表字段_动态称重检测系统助力智慧治超
  3. matlab出图时汉字都变成方框_linux下Matlab 2020中文字体方框问题解决方法
  4. layer normalization 缺点_优缺点并存的星越,用车感受还是不错的!
  5. 微信浏览器真不愧移动届ie啊
  6. sqlserver两种分页方法比较
  7. MFC选择目录和多个文件
  8. 医学遗传学词汇英语术语英文(Glossary) 5
  9. 大型网络整体安装与配置解决方案
  10. Double得有效位