1

Spring Data Neo4jには遅延読み込みがありません

とにかく、プロジェクトで遅延読み込みが必要です。結局のところ、毎回取得したいものを実際に取得するためにゲッターに頼ることができない場合、ゲッターを使用する意味はありますか?

ドメイン モデルを遅延ロードするために、Spring コンポーネントとして注釈を付け、アクセスしようとしたときにフィールドを遅延ロードするロジックをゲッターに追加することを考えていました。これにより、モデルがneo4jに強く結合されることはわかっていますが、遅延読み込みがないよりも、その強力な結合が必要です。

ただし、すべてのモデルをこれを使用するように変換する前に、密結合以外にこれを行う際の問題を誰か教えてくれるかどうかを確認したかったのです。私のモデルがSpringコンポーネントとしても機能していれば、Springデータに問題はないはずですよね?必要に応じて、アプリケーション コンテキストから取得したサービスの静的インスタンスを参照できます (静的参照は既にあるので、すべての Vaadin フロントエンド クラスをスプリング コンポーネントにする必要はありませんでした)。それらを使用する方が良いと思いますか?

4

3 に答える 3

2

いわゆる高度なマッピング モードは、すぐに達成したいことのほとんどを行うと思います。シンプル マッピング モードを使用すると、すべてのデータがエンティティにコピーされ、@Fetch で注釈が付けられたときにすべての関係がフェッチされます。高度なマッピング モードでは、エンティティがノードの一種のラッパーになり、エンティティを明示的にアドレス指定した場合にのみ、基になるノードにアクセスします。このようにして、多くのデータが遅延ロードされます。必ずトランザクション内でエンティティをアドレス指定してください。そうしないと、呼び出すたびにトランザクションが作成され、パフォーマンスに影響します。

この主題に関する多くの優れた情報については、リファレンス ドキュメントを参照してください。

于 2013-03-28T13:49:43.897 に答える
0

現在の neo4j リファレンスに基づくいくつかの更新 - http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/

@Fetch は廃止されたアノテーションです

neo4jTemplate.fetch() は利用できません。深さを指定する必要があります - http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#_api_changes

于 2016-06-14T10:02:09.813 に答える