2016-12-12 1 views
1

との関係を保存し、接続とBの数百は、新しく作成されたノードでもあります。のNeo4j OGM - 私は潜在的に2つのノードAとB</p> <p>との間の関係を作成しようとしている深さ1とONLY関係

私は今それをやっている方法は、Aの子としてBを追加し、1

いくつかの例のGroovyコードの深さAを保存する、1の深さと積載Aである

def B = neo4jOperations.save(new B(), 0) 
def A = neo4jOperations.load(A, idOfA, 1) 
A.relationshipList().add(B) 
neo4jOperations.save(A, 1) // This turns out to be slow since it is saving all the @EndNode of A, while it doesn't need to 

しかし、これはneo4jの読み込みと不要なノードと関係の保存のため非常に遅いです。私はただ1つのノード、すなわちBの既存の関係にBを追加することに興味があります

私は反パターンを打つのですか?それとも、これはそれが動作するはずの方法ですか?私はこれを行うことができるより速い方法はありますか?

+0

いくつかのコードを共有できますか? 「深さ1で」ロード/セーブすることが意味するものは明確ではありません。 – cybersam

+0

@cybersam done。 – Nerrve

答えて

1

現時点では、OGMはAのすべての関係をロードしますが、すでに保持されている場合は保存しません。これは遅くてはいけません(どのバージョンを使用していますか?)。回避策/ハックは、新しいSessionを試し、Aを深度0にロードしてからBを追加して保存してください。事態がひどく間違っている可能性があるので、このセッションを今後の作業に使用しないように注意してください。さらにサンプルコードを送って問題を開いてください。https://github.com/neo4j/neo4j-ogm

+0

あなたが新しいセッションを言うとき、私は自分の仕事の前後にneo4jOperations.clear()をやっていることを意味しますか? @luanne – Nerrve

+0

はい、それを試してください – Luanne

+0

@Nerrveは成功しましたか?私は、neo4j-ogmが古い関係を変更していないと見なしてもそれをマップしようとしていると信じている同様の状況を見ています。私はまだそれの原因を見つけることができませんでした。 – geld0r

関連する問題