2019独角兽企业重金招聘Python工程师标准>>>

###在对Hibernate持久化的对象进行JSON化的时候,出现了几个问题。


  • 第一个是因为在对象中有相互引用,如A->B,B.set->A这样的一对多关系,使得在遍历构造JSON时,产生了死循环。

  • 第二个是使用JSONObject的JSONObject(Object,String[])构造器时,不会对对象的属性进行迭代,而是直接返回对象的字符串如同test.Test@aaa这样的内存地址。查看JSONObject的源码发现在putOpt中是调用put(key,value);继承修改为put(key,wrap(value))后就可以遍历。

  • 第三个是使用JSONObject(Object,String[])构造器对实体进行JSON化时,有时无法获取到值,只能得到null,在JSONObject中是使用Object value = c.getField(name).get(object)来获取值的,后来改为

      Object value = c.getField(name).get(object);if( value == null) {Method m = c.getMethod("get"+ name.substring(0, 1).toUpperCase() + name.substring(1));value = m.invoke(object);}
    

    后通过get方法可以获取到值了,这应该和Hibernate的装配方式有关,还没深入了解。

转载于:https://my.oschina.net/u/575497/blog/106113

Hibernate实体JSONObject化时遇到的问题相关推荐

  1. hibernate实体的几种状态

    http://fojian.iteye.com/blog/420141 hibernate实体的几种状态: 实体的生命周期中,实体主要经过瞬时(Transient),托管(Attatched或Mana ...

  2. Hibernate 实体关联关系映射----总结

    http://lavasoft.blog.51cto.com/62575/39398 Hibernate 实体关联关系映射----总结 花了三天的业余时间,终于写完了Hibernate关联关系映射的所 ...

  3. hibernate实体的几种状态:

    hibernate实体的几种状态: 实体的生命周期中,实体主要经过瞬时(Transient),托管(Attatched或Managed),游离(Detached)和销毁(Removed)四个状态. 瞬 ...

  4. hibernate jpa_JPA / Hibernate实体状态转换的初学者指南

    hibernate jpa 介绍 Hibernate将开发人员的思维方式从SQL语句转移到实体状态转换. 一旦由Hibernate主动管理实体,所有更改将自动传播到数据库. 操作域模型实体(及其关联) ...

  5. JPA / Hibernate实体状态转换的初学者指南

    介绍 Hibernate将开发人员的思维方式从SQL语句转移到实体状态转换. 一旦实体由Hibernate主动管理,所有更改将自动传播到数据库. 操作域模型实体(及其关联)比编写和维护SQL语句容易得 ...

  6. Hibernate实体基本注解,ManyToOne,OneToMany,cascade,orphanRemoval等说明

    Hibernate注解实现实体持久化 首先我们创建一个实体类: @Entity @Table(name="product") public class Product implem ...

  7. Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?

    你有一个Hibernate实体的共同基类,即具有id,version和其他常见属性的MappedSuperclass?有什么缺点吗? 例: @MappedSuperclass() public cla ...

  8. eclipse从数据库逆向生成Hibernate实体类

    2019独角兽企业重金招聘Python工程师标准>>> 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说 ...

  9. C#编写最小化时隐藏为任务栏图标的Window appllication

    C#编写最小化时隐藏为任务栏图标的Window appllication. 1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件 ...

最新文章

  1. 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器
  2. vs2013中的error c4996的问题
  3. access期刊可以重投几次_又被拒稿了?老司机带你一投即中
  4. sdutoj-4209-移动小球
  5. win docker运行MySQL
  6. Java多线程(三)之ConcurrentHashMap深入分析
  7. Leetcode-1155 Number of Dice Rolls With Target Sum(掷骰子的N种方法)
  8. 70进货卖100利润是多少_进货价8块的产品,在网上卖100块,这个电商卖家能赚多少!...
  9. Linux开机自动启动ORACLE设置
  10. python爬虫JS逆向加密破解之百度翻译
  11. Shell脚本编程之(二)简单的Shell脚本练习
  12. Angular CLI: 全局脚本
  13. BZOJ4196 NOI2015 软件包管理器
  14. dis的前缀单词有哪些_学好单词得靠词根词缀来帮忙
  15. 同济大学《高等数学》上册答案
  16. 模块应用:Arduino避障小车
  17. html设计效果图,网页效果图如何制作?
  18. 信息系统开发与管理简答题、应用题和名词解释题汇总
  19. ajax同步导致浏览器假死
  20. 解决前端做excel下载的文件打不开

热门文章

  1. C++:13---多态和虚函数表
  2. setsockopt()用法(参数详细说明)
  3. MachineLearning(3)-流型
  4. chrome 使用gpu 加速_一招解决 Chrome / Edge 卡顿缓慢 让浏览器重回流畅顺滑
  5. STL源码剖析 数值算法 accumulate | adjacent_difference | inner_product | partial_sum | power | itoa
  6. C++ 数据结构 线性链表
  7. 英语口语 week13 Wednesday
  8. codeforces 977A-C语言解题报告
  9. C++ primer 第10章 泛型算法
  10. 诺基亚是“不跟随”还是跟不上?