今天使用Mybatis练手,准备将db中查出来的结果集序列化,使用Gson  代码如下

  List<User> users1 = userMapper.selectUserCollection(1);Gson gson1 = new Gson();String str = gson1.toJson(users1);

User类如下

Expose
package com.thq.mybatis.model;import java.util.List;import com.google.gson.annotations.Expose;public class User {private Integer id;private String name;private Integer age;private String pwd;private Menu menu;private List<Menu> menus;//get
set 方法省略}

一执行,直接报错


百度了一下点击打开链接  上面有一种解决办法 使用Gson 库中的@Expose注解 即:将pojo类需要序列化的字段都加上该注解
public class User {@Exposeprivate Integer id;@Exposeprivate String name;@Exposeprivate Integer age;@Exposeprivate String pwd;@Exposeprivate Menu menu;@Exposeprivate List<Menu> menus;
}

序列化代码
Gson gson1 = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();String str = gson1.toJson(users1);

正常输出,问题解决,优点是比较简单,不过 有个缺点:问题解决上面的方法pojo类要依赖Gson库,而且每个字段都需要加注解,需要更改两个类,pojo字段多的需要加大量的注解
其实还有一个方法,mybatis返回的数据中带有了代理类,所以不能直接序列化,我门可以将返回的结果转换一下,将需要的字段放到新的pojo类中,问题也能搞定,而且原生支持。优点:直观,缺点:如果目标类中比较复杂,需要new 很多的对象,实现需要拷贝的字段

做个笔记,方便以后查看

Attempted to serialize java.lang.Class Forgot to register a type adapte相关推荐

  1. Attempted to serialize java.lang.Class: com.cao.bean.DmCategory. Forgot to register a type adapter?

    使用mybatis从数据库获取的数据,用gson进行传参出现错误以下报错: 我使用的mybatis是采取懒加载的方式查询数据库,也就是只有用到了才去查真正的数据,用不到的话只是返回一个代理对象,gso ...

  2. 重点技术-20181008-GSON 报错HibernateProxy. Forgot to register a type adapter?

    摘要: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a ...

  3. springboot出现“org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?“的解决办法

    springboot出现"Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot ...

  4. 报错: java.lang.IllegalArgumentException: mapper [categoryName] of different type, current_type [text]

    Elasticsearch报错: 非法参数异常 Caused by: java.lang.IllegalArgumentException: mapper [categoryName] of diff ...

  5. Android之java.lang.UnsatisfiedLinkError(Failed to register native method ***callMethod1())解决办法

    1.问题 Failed to register native method com.example.chenyu.test.JniClient.callMethod1() java.lang.Unsa ...

  6. springBoot集成websocket报java.lang.IllegalStateException: Failed to register @ServerEndpoint class:错误

    搜了很多答案,大致有以下几种解决办法,如果有类似错误,大家可以按下面几类错误对照检查一下: 1. @ServerEndpoint("/webSocket/message/{xxx}/{xxx ...

  7. SSM项目tomcat启动不了,spring配置问题。Caused by: java.lang.IllegalStateException: Cannot convert value of type

    原因是spring配置文件出错了. 在配置springxml文件时,注意数据库引入不能用value,还有一些对象的引用不能用value. 改成ref就ok了.虽然这个问题很简单,但又有可能被忽略. 再 ...

  8. 异常org.hibernate.proxy.HibernateProxy.Forgot to register a type adapter

    今天遇到一个这样的问题,发现是是对象代理的原因,将转换json对象中的代理对象赋为空即可: <pre name="code" class="java"&g ...

  9. 注解 java.lang.annotation.Inherited 介绍

    在Spring Boot中大量使用了@Inherited注解.我们来了解一下这个注解的用法,注解的源码: package java.lang.annotation;/*** Indicates tha ...

最新文章

  1. 非升即走的博士们日后该怎么办?院长给出这5点建议
  2. 互联网如何“升级”制造业?《“人工智能+制造”产业发展研究报告》发布
  3. 实用插件_这些实用的PR插件你知道吗?
  4. 5首页加载慢_5个 外贸建站谷歌SEO优化技巧
  5. 布尔值_Python基础知识点手册——布尔值及布尔运算
  6. 2021夏季每日一题 【week7 完结】
  7. zcmu2014(公式推导+二分)
  8. 语言语法糖_【c#】几种常用语法糖
  9. 关于Breeze's MapHack 2.0的一些重要说明
  10. sas一元回归分析_商业分析的应用
  11. ir指令、立即数的作用_我们一起学RISC-V——08-RV32I 指令应用实战
  12. [ZJOI 2012]灾难
  13. 地区选择控件的制作(仿中华英才网地区选择控件)
  14. activiti7---activiti7整合springboot
  15. error while trying to retrieving text
  16. java打印出 锟斤拷_一段java代码带你认识锟斤拷
  17. 李航 统计学习方法 中的adaboost案例详解
  18. js中的强制类型转换和进制数表达
  19. JAVA 的命令行运行
  20. php随机生成0.1到10的随机数

热门文章

  1. 优化命令之sar——最牛命令
  2. AdoptOpenJDK下载
  3. Java的ArrayList集合使用---唐代诗人斗地主!!!
  4. 最具人气的十八种IT认证资质
  5. Java进阶之多线程
  6. 黑五电子邮件营销最全指南!
  7. mysql5.6.22.0安装_mysql 8.0.22 下载安装配置方法图文教程
  8. 敏捷CSM认证:SCRUM 工件之产品待办列表
  9. 阿里等大厂的需求研发/开发流程,进去前了解一下
  10. c语言与星星金字塔的碰撞哦