递归算法:解决hibernate实体外键关联,导致json解析死循环!
2015-01-09 21:07
471 查看
1:首先谈谈递归
递归算法:递归过程一般通过函数或子过程来实现。递归方法:在函数或子过程的内部,直接或者间接地调用自己的算法。
如何设计递归算法
1.确定递归公式
2.确定边界(终了)条件
递归的一般模式
procedure aaa(k:integer);
begin
if k=1 then (边界条件及必要操作)
else begin
aaa(k-1);
(重复的操作);
end;
end;
2:应用场景
组织表:
组织树形结构,组织实体中包含父节点和子节点。还包含用户集合,用户跟组织建立N:M的映射关系。
用户表:
我用的是RestFul Api想获取组织的树形结构,前台用的EasyUI的tree控件。返回组织的json数据,但是程序异常,因为组织和组织,组织和用户的相互嵌套,导致返回结果json解析进入死循环模式。
三:递归解决方案
将组织包含的父节点,子节点集合set Null,只设置一个非持久化的对象。
@Transient
private Set<Organization> children;
递归算法:递归过程一般通过函数或子过程来实现。递归方法:在函数或子过程的内部,直接或者间接地调用自己的算法。
如何设计递归算法
1.确定递归公式
2.确定边界(终了)条件
递归的一般模式
procedure aaa(k:integer);
begin
if k=1 then (边界条件及必要操作)
else begin
aaa(k-1);
(重复的操作);
end;
end;
2:应用场景
组织表:
组织树形结构,组织实体中包含父节点和子节点。还包含用户集合,用户跟组织建立N:M的映射关系。
用户表:
我用的是RestFul Api想获取组织的树形结构,前台用的EasyUI的tree控件。返回组织的json数据,但是程序异常,因为组织和组织,组织和用户的相互嵌套,导致返回结果json解析进入死循环模式。
三:递归解决方案
将组织包含的父节点,子节点集合set Null,只设置一个非持久化的对象。
@Transient
private Set<Organization> children;
相关文章推荐
- 使用hibernate解析json时死循环问题解决
- Hibernate实体list、set生成Json出现类属性无限循环解决方法
- hibernate双向关联和json-lib使用的死循环问题的解决
- 【转】hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题
- springboot 使用hibernate进行双向关联json解析时死循环处理
- struts-hibernate-ajax完成区县和街道级联下拉框功能(二补充使用json解析list结果集,ajax循环json层级处理)
- hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题
- JSON解析关联类型发生死循环 There is a cycle in the hierarchy!
- 关于json-lib 和hibernate一起使用的时候出现死循环的解决办法
- Hibernate 双向关联实体转Json
- 解决Hibernate中不同包内有形同实体导致映射失败的问题
- json返回hibernate的结果会自动调用(get)查询出关联表的数据,解决方法
- Hibernate表关联对象转Json双向关联解析过度
- 解决json,There is a cycle in the hierarchy,只循环到某一个关联层
- json+hibernate死循环问题的解决方法
- PHP json_encode返回的json前端获取时出现unicode转码和反斜杠\导致无法解析的解决办法
- 解决spring mvc +hibernate整合时使用jackson返回json数据无限循环问题的官方解决方案
- 使用jackson转json解决双向关联循环调用
- 使用Jackson解析json配合Hibernate报错的解决方法
- SQL删除数据因外键关联导致花费时间太长----(外键列上增加索引解决此问题)