問題タブ [infinite-recursion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
68 参照

recursion - Prolog flatten/2 の実装

これが私の実装ですflatten/2

期待される結果は次のとおりです。

ただし、;スタック制限に達すると超過します。なぜこれが起こるのですか?無限再帰はどこにありますか?

ありがとう。

0 投票する
1 に答える
102 参照

spring-boot - 中間テーブルによってマッピングされた ManyToMany 関係の無限の JSON

互いに関連する 2 つのエンティティがあります。これらの 2 つのエンティティは、多対多の関係で互いにマップする必要がありますが、それぞれの関係のタイムスタンプ (発生したとき) も必要なので、中間テーブルを使用してそれらをマップしようとしています。

当初、関係は 1 対多でしたが、ビジネス ロジックがこれを必要とするため、実際には多対多が必要であることに気付きました。親と子の関係があるため、構造は同じですが、今回は、子も複数の親を持つ必要があります。

私の BaseEntity は、他のすべてのエンティティに存在するフィールドを含む抽象クラスです。

次に、多対多スタイルで関連付ける必要がある 2 つのエンティティがあります。これは私の最初のエンティティであり、親になる必要があります:

私の 2 番目のエンティティは、子エンティティと見なされます。

仲介エンティティもあります。

問題は、UserEntity を取得しようとすると、無限再帰が発生することです。

これまでのところ、@JsonIgnore、@JsonManagedReference、@JsonBackReference を使用してみましたが、機能しなかったか、適切に使用する場所や方法がわかりません。

要約:

  • 多対多の関係によってマッピングされた 2 つのエンティティ。
  • 中間エンティティと 1 対多 + 多対 1 の関連付けを使用して実装された多対多。
  • UserEntity を表示するときに再帰を取得します。

更新:この質問への回答で説明されている別のアプローチを使用して、これを修正することができました。