`
8366
  • 浏览: 802201 次
  • 性别: 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和inverse)一对多

    在一对多关系中,如果一个实体(父实体)与多个实体(子实体)关联,设置级联属性可以确保在处理父实体时,子实体的操作也会随之进行。例如,当删除父实体时,可以选择是否同时删除所有子实体。Hibernate提供了多种...

    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

    Hibenate cascade

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

    hibernate_reference中文版和Hibernate中文手册

    《Hibernate参考指南中文版》与《Hibernate中文手册》是学习Java领域中ORM(对象关系映射)框架Hibernate的重要参考资料。Hibernate作为一个开源的、强大的持久化框架,极大地简化了数据库操作,使得开发人员能够以...

    java Hibernate 中文API文档

    12. **级联操作(Cascade)**:在关联关系中,设置cascade属性可以指定父对象的操作是否影响子对象,例如,当删除父对象时,可以选择同时删除所有子对象。 13. **集合映射**:Hibernate提供了Set、List、Map等多种...

    量子密钥分发中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的XML映射文件中,集合类型的关联关系经常使用`<set>`标签,如`<set>`下的`name`属性指定集合属性名,`table`属性指定中间表(多对多关系时),`inverse`属性表示维护关系的责任方,`cascade`属性控制...

    hibernate annotation 中文文档

    《Hibernate Annotation 中文文档》是Java开发者们的重要参考资料,它详细介绍了如何在Hibernate框架中使用注解进行对象关系映射(ORM)。Hibernate是一款强大的开源Java持久化框架,它简化了数据库与Java对象之间的...

Global site tag (gtag.js) - Google Analytics