Hibernate实体JSONObject化时遇到的问题

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

###在对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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

截取中英文字符串

代码 functionsubstr(str, len){if(!str ||!len) { return; }//预期计数&#xff1a;中文2字节&#xff0c;英文1字节vara 0;//循环计数vari 0;//临时字串vartemp ;for(i0;i<str.length;i){if(str.charCodeAt(i)>255){//按照预期计数增加2a2; }else{ a; }//如果增加计数…

mysql概述

MySql大致分为三层结构&#xff1a; 第一层&#xff1a;客户端并非MySql所独有&#xff0c;例如&#xff1a;连接处理、授权认证、安全等功能均在这一层处理 第二层&#xff1a;核心服务包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数)&#xff0c;所…

团队项目-需求分析

团队作业-需求分析 这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2这个作业的要求在哪里https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3105团队名称快乐小分队这个作业的目标完成英语学习app&#xff0c;尽量…

REMarkerClusterer

2019独角兽企业重金招聘Python工程师标准>>> REMarkerClusterer 创建和管理大量的标记每个缩放级别的集群。REMarkerClusterer 受苹果的照片应用程序在iPhone上的启发&#xff0c;模仿它的行为提供分组和取消分组集群的动画。 转载:http://www.adobex.com/ios/sourc…

corosync+openais+pacemaker+web

corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c;需要将两者结合起来.corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c…

解构领域驱动设计(三):领域驱动设计

在上一部分&#xff0c;分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。 Override public void pay(int orderId, float amount) {DesignerOrder order designerOrderRepository.selectByKey(orderId); …

iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方...

https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainbundle中获取resources.bundleNSString *strResourcesBundle [[NSBundle mainBundle] pathForResource:”Resources” ofType:”bundle”];// 找到…

SQL优化准则

1. 在长时间运行的查询和短查询中使用事务 如果预期有一个长时间运行的查询&#xff0c;并且有大量的数据输出时&#xff0c;开发者就应该在BEGIN TRAN 和END TRAN之间使用事务。 这样事务会在缓冲区缓存为独立事务&#xff0c;并会被分配特定内存&#xff0c;以此来提高处理…

预祝大家2011农历新年快乐,宏“兔”大展,心想事成~

预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; 又是一年新年到&#xff0c;预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; _____________________________________________________ 以下是附带的……

MySQL中的表压缩功能

MySQL版本&#xff1a;8.0.22 os&#xff1a;linux ubuntu 语言&#xff1a;c、c 在MySQL中支持3种类型的表压缩&#xff0c;依次为&#xff1a;传统压缩、TPC压缩、字典压缩。 第一种&#xff1a;传统压缩 传统的表压缩方式是在MySQL5.0.7之前使用的&#xff0c;现在已经废…

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案

本文目录1. Net下日志记录2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 2.4 日志类型介绍 2.5 产生的日志文件3. 基于Microsoft.Extensions.Logging封装 3.1 添加引用Microsoft.Extensions.Logging 3.2 实现…

strcasecmp()--忽略大小写比较字符串

strcasecmp()的功能是&#xff1a;忽略大小写比较字符串 头文件 #include <strings.h> 函数原型&#xff1a;int strcasecmp(const char *s1, const char *s2); 函数功能: 用来比较参数s1和s2字符串&#xff0c;比较时会自动忽略大小写的差异。 返回值: 若参数字符串…

基于报文地址的策略路由配置示例

【实验拓扑】本文实验采用的交换机是H3C模拟器&#xff0c;下载地址如下&#xff1a; http://forum.h3c.com/forum.php? modviewthread&tid109740&highlightH3C%E6%A8%A1%E6% 8B%9F%E5%99%A8 有兴趣的朋 友可以在论坛上去下载 【组网需求】普通的报文转发是依据报文的…

MySQL单机版Recycle Bin回收站功能

最近调研了阿里的Recycle Bin回收站功能&#xff0c;可以保证数据不丢失。 为了防止开发或运维人员的误操作&#xff0c;比如DROP TABLE/DATABASE、TRUNCATE TABLE&#xff0c;这类DDL语句不具有可操作的回滚特性&#xff0c;而导致数据丢失,AliSQL 8.0(基于MySQL)新特性支持回…

用STATSVN统计公司SVN代码修改

直接用LOG&#xff0c;BOSS还是不满意&#xff0c;那只好架上JDK&#xff0c;用STATSVN了。 跑得还顺利&#xff0c;只是具体代码没跑出来。。 但共用一个帐号&#xff0c;害人呀&#xff0c;还好有提交注释里有程序员的名字。。 STATSVN文档很简单&#xff0c;简单报告也就一个…

MySQL源码解读之数据结构-LF_DYNARRAY

MySQL的代码中实现了一个Lock Free的Hash结构&#xff0c;称作LF_Hash。MySQL的不少模块使用了LF_Hash&#xff0c;比如Metadata Lock就依赖于它。但由于使用的方法不正确&#xff0c;导致了bug#98911和bug#98624。理解LF_Hash的实现细节&#xff0c;可以帮助我们用好LF_Hash。…

如何运行一个Vue项目

一开始很多刚入手vue.js的人&#xff0c;会扒GitHub上的开源项目&#xff0c;但是发现不知如何运行GitHub上的开源项目&#xff0c;很尴尬。通过查阅网上教程&#xff0c;成功搭建好项目环境&#xff0c;同时对前段工程化有了朦朦胧胧的认知&#xff0c;因此将环境搭建过程分享…

Hibernate初学之CURD

Hibernate初学之CURD 以前学过JDBC的增删改查&#xff0c;感觉挺方便的&#xff0c;用hibernate框架则会更加简便&#xff0c; 关于hibernate的增删改查模块&#xff0c;我感觉用代码解释再合适不过了&#xff1b; 首先是导包问题&#xff1a;应用hibernate需要导十个包&#x…

计算机网络读书笔记(1)

传输控制协议TCP最主要特点&#xff1a; 1、 面向连接的传输层协议&#xff0c;类似于打电话 2、 点对点&#xff08;一对一&#xff09;&#xff0c;每一条TCP只能有两个端点 3、 提供可靠交付的服务 4、 全双工通信 5、 面向字节流&#xff08;所谓流&#xff1a;流入到…

网卡驱动收发包过程图解

网卡 网卡工作在物理层和数据链路层&#xff0c;主要由PHY/MAC芯片、Tx/Rx FIFO、DMA等组成&#xff0c;其中网线通过变压器接PHY芯片、PHY芯片通过MII接MAC芯片、MAC芯片接PCI总线 PHY芯片主要负责&#xff1a;CSMA/CD、模数转换、编解码、串并转换 MAC芯片主要负责&#x…