私はJava Persistence with Hibernate
を読んでいます。この本では、9章のページno。 390永続性レイヤーキャッシュによって次のことが保証されます。Hibernate、Persistence layer cacheについて
オブジェクトのグラフ内の循環参照の場合、持続層はスタックオーバーフローの影響を受けません。
なぜパーシスタンスレイヤーがスタックオーバーフローに対して脆弱ではないのか理解してもらえますか?
ありがとうございました!
私はJava Persistence with Hibernate
を読んでいます。この本では、9章のページno。 390永続性レイヤーキャッシュによって次のことが保証されます。Hibernate、Persistence layer cacheについて
オブジェクトのグラフ内の循環参照の場合、持続層はスタックオーバーフローの影響を受けません。
なぜパーシスタンスレイヤーがスタックオーバーフローに対して脆弱ではないのか理解してもらえますか?
ありがとうございました!
まあ、私は非常に明確な答えを見つけたが、私は、Hibernate 3.5ドキュメントの中で何かが見つかりました:
5.2。休止状態タイプ
5.2.1。エンティティおよび永続サービスに関連して
の値は、Java言語レベルのオブジェクトは、次の2つのグループに分類される:
エンティティは、独立して、エンティティへの参照を保持する他のオブジェクトの存在します。これを、参照されていないオブジェクトがガベージコレクションされる通常のJavaモデルと比較してください。エンティティは明示的に保存および削除する必要があります。ただし、保存および削除は、親エンティティからその子にカスケードすることができます。これは、到達可能性によるオブジェクト永続性のODMGモデルとは異なり、アプリケーション・オブジェクトが大規模システムで通常どのように使用されるかをより詳しく示しています。 エンティティは循環参照と共有参照をサポートします。また、バージョン管理も可能です。
ハイライトされた太い表記の行によると、Hibernateはそのような循環参照を内部的にチェックし、複数のレベルのネストされたエンティティをロードしないと推測します。 Javaの静的クラスの場合と同じように、独自の型の静的参照メンバーがあります。
私は自分の答えを受け入れていません。正確な答えではありません。誰かがHibernateの内部メカニズムについてより良い答えを投稿することができます... – avs
1つはサイクルをチェックすると仮定します... – azurefrog
@azurefrogサイクルをチェックする必要があることを理解していますが、詳細については、Hibernateがそれをどのように処理するかを知ることを質問しました。 – avs