您的位置:首页 > Web前端 > JavaScript

Hibernate 双向关联实体转Json

2017-06-13 10:46 573 查看
前言

对于Hibernate中双向关联实体转换成Json中,会包错:JSONException: There is a cycle in the hierarchy!,会点英语的都知道这句话是什么意思,就是在转换Json的过程中出现了死循环,就是因为实体中存在了互相关联的原因。遇到这类原因你先不要就去百度了,先自己思考Json转换之前是不是需要配置一些信息可以解决过滤问题,此时你可以在你自己的代码基础之上看,Json字符开头的有哪些类,你将会看到JsonConfig这个类的时候,你就看字面意思就是Json转换配置了,再想配置肯定是set()方法之类的,那么这时候你就先敲出set看看有哪些方法:



这时候你是不是看到了一个希望和奇迹并存的单词Exclude:排除,是的希望就在眼前了,那么再看它有哪些参数:



看着是一个String[]数组,那么就对了,是他是他就是他,我们的希望排除他,此时我们就可以完善自己的代码:

ArrayList<Good> goodList = (ArrayList<Good>) HibernateUtils.query("from Good where cart_id = ?", new Object[]{"1"});

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"user","goods"});
JSONArray responseJsonMsgs=JSONArray.fromObject(goodList,jsonConfig);
System.out.print(responseJsonMsgs.toString());

看看输出日志:

Hibernate: select good0_.cart_id as cart1_1_, good0_.user_id as user2_1_, good0_.good_id as good3_1_, good0_.good_name as good4_1_, good0_.good_price as good5_1_ from exercise.good
good0_ where cart_id=?

此处的排除的user和goods是属性名称:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息