当前位置: 首页 > 面试题库 >

如何解决由休眠双向映射导致的json序列化器中的循环引用?

冷吉星
2023-03-14
问题内容

我正在编写一个序列化程序以将POJO序列化为JSON,但陷入循环引用问题。在休眠的双向一对多关系中,父级引用子级,而子级引用又回到父级,此时我的序列化程序死亡。(请参见下面的示例代码)
如何打破这个循环?我们可以获取对象的所有者树以查看对象本身是否存在于其所有者层次结构中的某个位置吗?还有其他方法可以找到参考是否为圆形吗?或任何其他想法来解决这个问题?


问题答案:

双向关系甚至可以用JSON表示吗?某些数据格式不适用于某些类型的数据建模。

处理遍历对象图时处理循环的一种方法是跟踪到目前为止您已经看到的对象(使用身份比较),以防止自己遍历无限循环。



 类似资料:
  • 问题内容: 我正在编写一个序列化程序以将POJO序列化为JSON,但陷入循环引用问题。在hibernate的双向一对多关系中,父级引用子级,而子级引用又回到父级,此时我的序列化程序死亡。(请参见下面的示例代码) 如何打破这个循环?我们可以获取对象的所有者树以查看对象本身是否存在于其所有者层次结构中的某个位置吗?还有其他方法可以找到参考是否为圆形吗?或任何其他想法来解决这个问题? 问题答案: 双向关

  • 问题内容: 有岗位这里,询问如何通过返回EF4CTP5序列化对象时,解决循环引用错误。不久前,我在WCF Web表单项目中遇到了同样的问题。 我能够在WCF / Web窗体项目和MVC3项目中“解决”此问题。我认为什么类型的项目都不重要,因为这似乎是EF序列化的“事物”。 我通过在ObjectContext构造函数中禁用ProxyCreation来解决此问题,如下所示: 我的问题是:有人可以解释为

  • 问题内容: 有人可以解释在xml映射文件中使用逆函数的方法吗,我正在阅读本教程,但无法理解在映射文件中的逆函数的用法? 谢谢 问题答案: 逆仅决定关系中的哪个实体负责更新数据库以反映关联。 假设一对多的双向关联。代码A和B中有两个类,A包含一组B,B维护对A的引用。在数据库级别,只有一个外键要更新,B的表包含一个到主键的列的A。 在这种情况下,假设我们将inverse = true放在集合侧。这意

  • 问题内容: 我有一个颜色枚举 我有包含它的MyEntity。 我已经有一个UserType来映射我的枚举。 您知道如何在Hibernate hbm.xml中映射枚举集吗? 我需要一个UserType还是最简单的方法? 谢谢 编辑: 只是为了说明一下,我正在寻找 hbm.xml 配置而不是@CollectionOfElements注释 问题答案: 我使用EnumSet映射线程中的解决方案,该解决方案

  • 问题内容: 我正在尝试实现一个Hibernate会话/事务拦截器,以避免Struts2中的json结果出现,但无论如何我都会得到此异常: 我的拦截器如下所示: 这是行不通的,我越来越之前甚至和 问题答案: 好的,最后我解决了将通用DAO注入(带有会话和事务)添加到genericAction的问题。这适用于带有惰性hibernatebean的JSONResults和jsp。 感谢您对“ bmorri