将具有关联关系的两个表通过hibernate从数据库中查出来后转成Json对象时报错解决

Hibernate使用SQL语句多表查询,并返回类json键值对 问题描述:在Hibernate5中,使用原生SQL进行多表查询,并将其结果通过Struts2返回给前台的ajax请求、bootstrap-table请求。 1. 数据库 数据库的表格数据大致如下: Invest表: id projectname investorid investmoney 1 SSFW 1 100 2 Universe 1 150 3 Universe... 阅读详情

  有一个A表,和B表,是one to many的关系。当我将B表从数据库中查出后.

 通过:

  1. JSONArray responseJsonMsgs=JSONArray.fromObject(list);

转成Json对象时报错:    There is a cycle in the hierarchy!

 

稍微想想就能明白,这里产生了死循环查询(跟hibernate的配置文件有关)。

 

解决方案,在转成Json对象的时候过滤掉bean中引起死循环查询的属性(一般为设置的外键)。

 

  我这里写了一个通用的过滤器对象,大家可以借鉴下

 

  1. package com.cfc.web.msgcenter;
  2. import net.sf.json.JsonConfig;
  3. import net.sf.json.util.PropertyFilter;
  4. public class JsonFilter {
  5.     public static JsonConfig getFilter(final String[] s){
  6.         JsonConfig config = new JsonConfig();
  7.         config.setJsonPropertyFilter(new PropertyFilter(){
  8.             
  9.             public boolean apply(Object source, String name, Object value) {
  10.              if(juge(s,name)) {
  11.               return true;
  12.              } else {
  13.               return false;
  14.              }
  15.             }
  16.             
  17.             public boolean juge(String[] s,String s2){
  18.                 boolean b = false;
  19.                 for(String sl : s){
  20.                     if(s2.equals(sl)){
  21.                         b=true;
  22.                     }
  23.                 }
  24.                 return b;
  25.             }
  26.            });
  27.         return config;
  28.     }
  29. }

 

转换的时候调用过滤器

  1. JsonConfig config = JsonFilter.getFilter(new String[]{"gameclass"});//String数组中存储的是要过滤的属性
  2. JSONArray responseJsonMsgs=JSONArray.fromObject(list,config);

问题解决! 

hibernate多表联合查询 hibernate多表联合查询实例,很经典的查询语句和总结. 立即下载

相关推荐

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 263

把执行结果转成json对象报错_将具有关联关系的两个表从hibernate查询出来转成json对象时报错...

第一篇文章:相信大家做过JSON相关的东西对这个异常并不陌生,这个异常是由于JSONObject插件内部会无限拆解你传入的对象,直到没有可拆解为止,问题就在这,如果你传入的对象有外键关系,或者相互引用,那么内部就会死循环,也就会抛出这个异常 解决办法,我们先说一种网上通用的:过滤 不错,过滤肯定会解决该问题,过滤也有两种方法:一种是通过Java代码jsonConfig.setExcl...

weixin_29994499的博客 173

无感健康监测的未来:毫米波雷达如何重新定义睡眠科技与居家养老

毫米波雷达技术正重新定义无感健康监测,特别是在睡眠科技与居家养老领域。通过精准监测呼吸、心率和体动,无需穿戴设备即可实现临床级精度。结合合宙Air700E开发板,构建了完整的远程看护解决方案,为老年人提供跌倒检测、异常报警等安全保障,同时保护用户隐私。

cake8的博客 569

hibernate两表级联查询语句

一.两个表: person 1 id 2 name(人名) 3 roomid room 1 roomid 2 room(房间号) 说明:一个room有多个person,通过roomid取出name和room封装到list 二.两个类: person类 private int id; private String name; private int roomid; public Person() {

网络 734

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记-----GCN在交通领域的应用(二) 一、论文翻译: 1、摘要: 及时准确地交通预测对于城市交通控制和指导具有至关重要的意义。由于交通流量的非线性和复杂性,传统的方法不能满足中长期预测任务的需求,并且往往会忽略时空数据的时间和空间依赖特性。在这篇论文中,为了处理在交通领域的时间序列预测问题...

cy_believ的博客 1916

# 解决 win11 连接共享打印机,报错 0x00000709 问题

# 解决 win11 连接共享打印机,报错 0x00000709 问题

段子手168的博客 9万+

hibernate两表连接查询

1.两表的关联关系为一对一 2.库存表Stock与商品信息表Product 3.库存表查询商品表里的商品名称,商品编号 库存表字段: private String id; private String stoSum;//库存量 private Integer stoSaleNum;//销售总数 private Long stoPrePrice;//上次进价 pr...

weixin_30551947的博客 265

Trae+Playwright MCP自动化测试全流程指南:从环境搭建到智能体运行

本文提供了一份详细的Trae与Playwright MCP集成指南,涵盖从Node.js、Python环境搭建到智能体创建的全流程。通过结合MCP协议,AI智能体能够理解任务并驱动Playwright执行复杂的浏览器自动化操作,实现从网页数据抓取到端到端测试的智能工作流。

banana的博客 531

hibernate总结多表查询

1.1笛卡尔积多表查询,书写方式,表名之间用,号隔开。这样将多张表的数据全部查出来,查出来的方式就是笛卡尔积的方式(完全组合)这样查出来的数据,有很多是无效的数据可以给多个表查询增加条件,查到想要的信息多表查询1.1 内连接可以通过在设计数据库的时候,表与表之间的关联属性,过滤出有效的数据显示内连接隐士内连接隐士内连接与显示内连接没有本质区别1.4外链接以一张表为基础。将这张表中的所有数据全部显示...

qq_41934990的博客 3882

SHAP图全解析:从理论到实践,教你如何读懂和优化模型特征

本文全面解析SHAP图,从博弈论基础到实战应用,指导读者如何解读和利用SHAP值优化机器学习模型。通过详解特征重要性条形图、小提琴图、依赖图及决策图等关键可视化工具,帮助数据科学家精准诊断模型、识别特征交互,并将洞见转化为特征工程与模型调试的实际行动,有效提升模型可解释性与性能。

svm4gardener的博客 189

华为OD统一考试 - 模拟消息队列(Java & Python& JS & C++ & C )

让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息,

算法大师! 3519

Hibernate连接查询

谈一下hibernate的连接查询 一、连接查询的基础知识连接查询 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的...

giga_Zhang的专栏 357

YooAsset 学习

YooAssets使用教程

weixin_44884538的博客 1659

将具有关联关系的两个表通过hibernate从数据库中查出来后转成Json对象时报错解决:采用过滤器

将具有关联关系的两个表通过hibernate从数据库中查出来后转成Json对象时报错解决:采用过滤器  有一个A表,和B表,是one to many的关系。当我将B表从数据库中查出后.  通过: JSONArray responseJsonMsgs=JSONArray.fromObject(list); 转成Json对象时报错:    There is a cycle

u010523770的专栏 905

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

将具有关联关系的两个表通过hibernate从数据库中查出来后转成Json对象时报错解决:采用过滤器...

有一个A表,和B表,是one to many的关系。当我将B表从数据库中查出后. 通过: JSONArrayresponseJsonMsgs=JSONArray.fromObject(list); 转成Json对象时报错: There is a cycle in the hierarchy! 稍微想想就能明白,这里产生了死循环查询(跟hibernate的...

weixin_30466953的博客 86

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

将具有关联关系的两个表从hibernate查询出来转成json对象时报错

第一篇文章: 相信大家做过JSON相关的东西对这个异常并不陌生,这个异常是由于JSONObject插件内部会无限拆解你传入的对象,直到没有可拆解为止,问题就在这,如果你传入的对象有外键关系,或者相互引用,那么内部就会死循环,也就会抛出这个异常 解决办法,我们先说一种网上通用的:过滤 不错,过滤肯定会解决该问题,过滤也有两种方法: 一种是通过 Java代码...

ddak56357的博客 143

解决json转换hibernate 结果集对象

在使用ext+ssh框架过程中,当使用jsonlib 转换 hibernate的延迟加载对象时,会出现报错。为解决此处错误,我们可以参考网友网上给的解决思路,大概就是: public static JsonConfig getCommonConfig() { /*---- 做属性配置 start------*/ JsonConfig conf = new JsonConfig(); c

it_man的专栏 9326

java 删除json对象的属性_java 过滤json中不想要的属性

我想把有关联关系的对象转成json格式可是hibernate会因为关联关系无限循环导致报错解决办法是过滤掉关联关系那个属性于是在网上查了一下用了这个方法JsonConfigconfig=newJsonConfig(...我想把有关联关系的对象 转成json格式 可是 hibernate会因为关联关系无限循环 导致报错 解决办法是过滤掉关联关系那个属性 于是在网上查了一下 用了这个方法Json...

weixin_31852627的博客 971

hibernate对象转换成json的时候报错java.lang.reflect.InvocationTargetException

框架: hibernate3 转换json类库:net.sf.json 在使用以下方法转换json时,报错java.lang.reflect.InvocationTargetException JSONArray.fromObject(list); debug后发现只有list中有的对象是hibernate懒加载对象的时候,就会出该问题。hibernate的懒加载对象,在转换json时,...

qq_40085888的博客 422

Hibernate懒加载对象转json异常的解决方式

问题点:使用Jackson将Hibenrate的懒加载对象转换json时出现死循环导致内存溢出 最近在做一个项目使用的是Spring+SpringMVC+Hibernate的架构 hibernate是一个非常优秀的ORM框架,它将底层JDBC操作都给封装了,我们直接可以像操作对象一样去操作数据库,虽然现在更多的公司更加倾向于架构的轻量化,由Mybatis比较轻便、学习的起点相对Hibernat...

lzlsite 710

使用SpringDataJpa的getone方法,将getone方法返回的对象作为json对象返回时报错

#使用SpringDataJpa的getone方法报错: Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no ...

weixin_44485115的博客 1427

关于hibernate懒加载造成JSON读取报错的解决方案

最近在做项目的时候使用的框架结构是springMVC+hibernate+easyui。 但在实际开发过程中遇到了一个问题就是:由于hibernate为了提高读取效率,使用了懒加载的机制,但是在实际前台读取JSON的时候确报错:No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyIniti...

开发随笔 4186

hibernate使用懒加载时,mvc转json时因为session已经关闭报错

用的是spring mvc+hibernate,spring mvc使用responseBody时会转成son对象,然后就会报错。 使用open session解决,但是这样就和没有使用lazy加载一样了。 使用jsonignore注解,但是这样也不好,当我想使用这个字段时就用不了。 最后找到一个方法,会自动判断对象是不是hibernate代理的对象,然后再判断这个对象有没有初始化过,如果没有初始化

1267

Jackson与Hibernate配合时产生一些问题

1.实体类转json的无线循环引用问题 2.hibernate懒加载的代理对象 所引起的jackson报错

zxy16305的博客 2785
上一篇: 实践hibernate加spring的整合
下一篇: 修改表名后修改数据报触发器(trigger)错误
java05
博客等级 码龄18年 21粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值