1. ホーム
  2. java

[解決済み] ハイバーネートの双方向マッピングに起因するjsonシリアライザの循環参照を解決するには?

2023-05-12 02:51:49

質問

POJOをJSONにシリアライズするシリアライザーを書いていますが、循環参照の問題で行き詰っています。Hibernateの双方向の一対多の関係では、親が子を参照し、子が親を参照し、ここで私のシリアライザーは死にます。(以下のコード例を参照してください)

このサイクルを断ち切るにはどうしたらよいでしょうか。オブジェクトの所有者ツリーを取得して、オブジェクト自体が所有者階層のどこかに存在するかどうかを確認することは可能ですか?参照が循環するかどうかを見つけるための他の方法は? またはこの問題を解決するための他のアイデアは?

どのように解決するのですか?

双方向の関係もJSONで表現できるのでしょうか?データ形式によっては、データモデリングにうまく適合しないものもあります。

オブジェクトグラフをトラバースする際にサイクルに対処する方法の1つは、(同一性比較を使用して)これまでに見たオブジェクトを追跡し、無限サイクルをトラバースするのを防ぐことです。