`
8366
  • 浏览: 802147 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JSON在处理hibernate中的cascade对象时的解决方案

阅读更多

如果数据间存在级联关系,在hibernate中极容易嵌套而抛出net.sf.json.JSONException: There is a cycle in the hierarchy异常。

解决办法是给json指定过滤器。如:

JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter(){
public boolean apply(Object source, String name, Object value){
  if (name.equals("goodsType") || name.equals("goodsGroup")){
     return true;
  }
  return false;
}
});
JSONArray jsonForGoodsTypes = JSONArray.fromObject(goodsTypes,config);

这将过滤掉goodsType和goodsGroup两个属性,避免了嵌套。

现在更好的解决办法(推荐):

JsonConfig config = new JsonConfig();
config.setExcludes( new String[]{ "execludeField" , "fromPage" } ) ;

把不需要的字段放到这个数组中就可以了!

JSONObject jobj1=JSONObject.fromObject(orderLevel,jsconfig);

 

分享到:
评论

相关推荐

    Hibernate中Cascade和inverse的区别

    在Hibernate中,Cascade和Inverse是两个非常重要的概念,它们分别用于处理对象之间的关联关系和级联操作。在理解和使用Hibernate时,了解它们的区别至关重要。 首先,`Cascade`属性主要用于控制对象之间的级联操作...

    Hibernate中cascade与inverse属性详解

    理解这两个属性对于有效管理 Hibernate 中的对象关系至关重要,尤其是在处理复杂的数据模型和事务操作时。通过合理设置这两个属性,开发者可以简化代码,提高应用程序的效率和数据一致性。在实际开发中,需要根据...

    Hibernate中cascade和inverse应用

    这使得在处理对象图时,能够简化操作,避免手动处理相关联对象的持久化状态。级联操作主要有以下几种: - `none`:默认值,不进行任何级联操作。 - `save-update`:当父对象保存或更新时,同时保存或更新所有子对象...

    Hibernate中cascade与inverse属性详解.doc

    于Hibernate中 cascade 与 inverse 的理解。 您买的Hibernate书是哪一本呢? 孙卫琴的精通Hibernate,还是 深入浅出Hibernate还是那本。。。 我是两本都买了,总体来说还可以,但是,有的地方讲的比较书面化,比如...

    Hibernate cascade (级联).doc

    Hibernate cascade (级联).docHibernate_cascade(级联).doc

    hibernate cascade 测试demo

    hibernate cascade 测试demo

    hibernate_配置cascade_及all-delete-orphan.doc

    \hibernate_配置cascade_及all-delete-orphan.doc

    Hibernate cascade在不同关联关系中的具体表现

    NULL 博文链接:https://dreamzhong.iteye.com/blog/1273157

    hibernate inverse和cascade的详细讲解

    hibernate inverse和cascade的详细讲解,相当详细全面的对inverse和cascade区别和用法的讲解

    Hibernate中Inverse和Cascade的区别.html

    Hibernate中Inverse和Cascade的区别.html

    hibernate 级联(cascade和inverse)一对多

    hibernate 级联(cascade和inverse)一对多,Jar包,数据库建表语句都好了,只要修改一下,数据库配置文件,就可以使用了,使用junit进行测试。

    Hibenate cascade

    在Hibernate中,`cascade`和`inverse`是两个重要的概念,它们涉及到对象之间的关系管理和数据持久化。 **1. Hibernate Cascade** `cascade`属性主要用于控制对象间的级联操作。当在主对象上执行保存、更新、删除等...

    量子密钥分发中Cascade协议的一种改进方案 .pdf

    量子密钥分发中Cascade协议的一种改进方案

    详解Hibernate cascade级联属性的CascadeType的用法

    所以,适当的做法是,删除主表的同时,关联表的信息也要同时删除,在hibernate中,只需设置cascade属性值即可。 cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性...

    hibernate中文帮助文档

    `@Embeddable`和`@Embedded`用于处理嵌入式对象,这些对象的属性会直接映射到包含它的实体表中。 2.2.4. 映射继承关系:Hibernate支持多种继承映射策略,如单一表继承(每个类一张表)、表-per-hierarchy(每个类...

    Hibernate学习笔记和资料

    hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...

    hibernate many-to-one(多对一)及 cascade(级联).doc

    深入理解hibernate many-to-one(多对一)及 cascade(级联).

    精通hibernate:对象持久化技术孙卫琴第二版part2

    业务数据在内存中表现为实体域对象形式,而在关系数据库中表现为关系数据形式。数据访问代码负责把实体域对象持久化到关系数据库中。 2.1 直接通过JDBC API来持久化实体域对象 21 .2.2 ORM简介 27 2.2.1 对象-...

    Hibernate_容器映射技术笔记

    总之,Hibernate的容器映射技术使得我们可以灵活地处理对象之间的关系,如一对多、多对多等,并通过延迟加载和级联操作优化数据操作的效率和便利性。理解并熟练运用这些技术,对于提升Java应用程序的数据库操作效率...

Global site tag (gtag.js) - Google Analytics