`
8366
  • 浏览: 809051 次
  • 性别: 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在不同关联关系中的具体表现

    - 在处理多对多关联时,应特别注意中间表的处理,避免造成数据冗余或错误。 总结来说,Hibernate的cascade属性是提高开发效率和保证数据一致性的重要工具,但需要根据实际业务场景选择合适的cascade类型,以免引发...

    Hibernate中cascade与inverse属性详解

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

    Hibernate中cascade和inverse应用

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

    Hibernate cascade (级联).doc

    在 Hibernate 中,级联(Cascade)是一种非常有用的功能,它能够帮助开发者在处理实体之间的关联时自动执行一系列相关的操作。通过级联,当对一个实体执行某些操作时,这些操作也会自动地应用到与之关联的其他实体上...

    hibernate cascade 测试demo

    本测试Demo主要目的是帮助我们理解如何在Hibernate中使用`cascade`属性来处理关联对象的数据操作。让我们深入探讨一下`cascade`的含义及其在实际开发中的应用。 `cascade`在Hibernate中的作用是当对一个实体进行...

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

    在Hibernate框架中,cascade选项提供了一种管理实体间关联的便捷方式,使得对一个实体的操作能够自动地应用到与之相关的其他实体上。这对于处理复杂的数据库关系非常有用,可以极大地简化代码,并减少出错的可能性。...

    Hibernate 删除出现异常的解决方案.doc

    可以考虑在many对象的映射文件中增加级联属性,但需要注意,值不能设置为none,可以设置为`cascade="all"`、`cascade="delete"`或者`cascade="save-update"`等,这样在删除one对象时,Hibernate会根据级联策略处理...

    hibernate 级联(cascade和inverse)一对多

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

    hibernate inverse和cascade的详细讲解

    - **一对多**:例如,在`Department`和`Employee`的关系中,如果`Department`设置了`cascade="all"`,那么当更新或删除部门时,相关的员工也会被级联更新或删除。 - **多对多**:例如,在`Student`和`Course`的...

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

    而在ORM(对象关系映射)框架Hibernate中,通过不同的注解或者XML配置来表示这些关系。其中,`many-to-one`(多对一)关系是较为常见的一种,它指的是一个实体可以对应另一个实体中的多个实例。 #### 代码示例解析 ...

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...

    Hibernate中Inverse和Cascade的区别.html

    Hibernate中Inverse和Cascade的区别.html

    Hibenate cascade

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

    Hibernate教程15_关联关系中的CRUD Cascade_Fetch

    在本教程中,我们将深入探讨Hibernate中的关联关系及其在CRUD操作中的应用,特别是关于Cascade和Fetch策略。Hibernate是Java领域广泛使用的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库交互...

    hibernate_reference中文版和Hibernate中文手册

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

    java Hibernate 中文API文档

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

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

    在众多量子密钥分发的协议中,Cascade协议是最早提出且应用最广泛的一种。它主要利用量子通道传输的量子比特来创建一个私有的随机密钥,这个密钥可以在通讯双方之间共享,且无法被第三方知晓。尽管Cascade协议在理论...

Global site tag (gtag.js) - Google Analytics