2

私は neo4j-ogm 1.1.4 バージョンを使用しています。セッションオブジェクトを使用して自分で作成した org.springframework.data.neo4j.template.Neo4jTemplate を使用しているため、すべての作業が完了したらセッションを閉じなければならないという契約があるのだろうかと思っています。

このリンクにたどり着きました

http://inner-loop.github.io/java-neo4j-ogm/

しかし、私が使用しているライブラリには、Session クラスに close メソッドがないようです。セッションを閉じたことをマークするために使用する必要がある他の A​​PI はありますか?

4

2 に答える 2

5

技術的には、Neo4j OGM でセッションを「閉じる」必要はありません。データベースへの接続を表すのではなく、アプリケーションとデータベース間の会話状態を維持し、(アプリケーションで定義された) 「作業単位」内でオブジェクトをロードおよび保存するときに、OGM が効率的な Cypher を生成できるようにします。

この会話状態を破棄するには、2 つの方法があります。どちらも、アプリケーション コードの観点からは同じ効果があります。

再利用

session.clear()既存の会話状態を削除することで、既存のセッション オブジェクトを再利用できます。

交換

session = sessionFactory.openSession()session現在のオブジェクトを新しいオブジェクトに置き換えます。

これらの操作は両方とも、グラフに対するドメイン オブジェクトの同期状態に関する情報なしで OGM を離れます。(Hibernate の用語では、それらは「切り離された」状態にあります) 現在、OGM にはドメイン オブジェクトを新しいセッションに再接続するメカニズムがないため、使用するすべてのオブジェクトを常に新しいセッションに再読み込みする必要があります。

于 2016-03-18T17:53:03.073 に答える