問題タブ [spring-data-neo4j-4]

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 に答える
426 参照

java - Spring Data Neo4j 4.0: 重複したノードが作成されました。代わりに関係を作成する必要があります

概要: を使用SDN4して、10 個のオブジェクトを保持しています。その半分は同じ内容で、リンク先の ID のみが異なります。リンク ID は として設定され@Transientます。それでも、2 つのリンクを持つ 1 つのオブジェクトではなく、同じコンテンツを持つ 2 つのオブジェクトが作成されます。この動作を回避するにはどうすればよいですか?

詳細: 2 つのドメイン オブジェクトが定義されており、CSV 経由の情報ソースは次のようになります。

ドメイン オブジェクト CSV:

ポジョ A:

ドメイン オブジェクト B:

ポジョ B:

これらの CSV ファイルは解析され、それぞれの POJO (A および B) 内で SDN4 に読み込まれます。

次に、これらのオブジェクトをループして、関係を追加します。

次に、ルート リポジトリである repositoryA を使用して、ロードされたオブジェクトを保存します。repositoryA.save(domainObjectA);

データベースにクエリを実行すると、match n return n;

A オブジェクトごとに 2 つとISO90012 つのISO14001オブジェクトがあります。私が期待するものの代わりに、それぞれに と への 2 つのリンクがA:1ありA:3ます。

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

spring-data-neo4j-4 - Spring-Data-Neo4j Repository の @Query で depth > 1 を指定

spring-data-neo4j リポジトリを使用して、@Query を使用し、深さが 1 より大きいノードをロードできますか?

私の例は

このクエリを使用すると、NodeTypeA が返されます。ただし、NodeTypeA の隣人も必要です。

ogm セッションを @Inject して、それを使用して必要な結果を得ることができますが、@Query で行う方がよいでしょう。

ドキュメントに次のようなメモがあることに気付きました。

現在のバージョンでは、派生ファインダーはページング、ソート、またはカスタムの深さをサポートしていません

しかし、 @Query を使用するメソッドは派生ファインダーですか?

0 投票する
0 に答える
81 参照

spring-data-neo4j-4 - SDN4 を使用した関係の予期しない削除

データ モデルのテストで、neo4j-ogm コードを spring-data を使用するように変換した後、以前に合格したテストが失敗しました。ただし、spring-data-neo4j が問題の原因ではないことはほぼ確実です。もっと概念的に欠けているものがあります(セッションや汚れなどについて?)

テストの動作は次のとおりです。

以前は、ノード A がそのプロパティで更新され、テスト実行後にデータベース内のノード A とノード B の間に関係が存在していました。

ただし、変換後の結果は同じですが、オブジェクト A が 2 回目に保存された後、ノード A とノード B の間の関係がデータベースに存在しなくなる (削除される) ことを除きます。

この動作を変更するために私がしたことはありますか? 期待される動作は何ですか?

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

java - Neo4j OGM グラフがトランザクション内の変更を上書きする

neo4j-ogm で見られた奇妙な動作について、ようやく説明がついたような気がします。当初、equals/hashcode の実装に関係があると考えていましたが、そうではありません。

ogm はキャッシュされたグラフのコピーを保持しているようで、トランザクション内ではすべての取得が同じメモリ オブジェクトを指しています。

動作を実証するための単体テストを作成しました (機能しない疑似コードの一部を以下に示します)。

これは私たちにとって問題のように見える特殊性です。

以前にこれを確認し、取得したオブジェクトの深さを変更して (グラフがメモリ内のものを元に戻さないようにするために) 排除しましたが、サイファー クエリを使用していない場合はカスタマイズできません。

この問題を回避する方法を教えてください。

0 投票する
2 に答える
1034 参照

neo4j - Spring Data Neo4j 4.0.0 でパスクエリを使用してノード ID を取得するには?

次のノードから作成されたグラフがあります。

私の Spring Data リポジトリには、これらのノード間の最短パスの Cypher クエリが含まれています。

2 番目の Iterable は、実際のパスをノードと関係のリストとして返します。これらのそれぞれは、プロパティを持つハッシュ マップとして表されます。このような単純なグラフの場合:

A -- B -- C

とのfindShortestPaths間のメソッドの結果パスには、次の5 つの要素が含まれます。AC

空のマップはノード間の関係を表していると思いますが、この場合、プロパティはありません。id私の問題は、ノードを表すマップにプロパティが含まれていないことです。

質問: ハッシュ マップではなく、対応するエンティティ オブジェクトとしてノードを返すことは可能ですか? そうでない場合、返されたハッシュ マップ内のパス ノードの ID を取得するにはどうすればよいですか?

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

spring - SDN4 構成 - java.lang.annotation.AnnotationFormatError: 無効なデフォルト: ...EnableNeo4jRepositories.repositoryBaseClass()

Spring Data Neo4j 4 で次のエラーが発生します。依存関係の競合である可能性があると思いますが、何が原因かわかりません。

上記のハイライトのようです。

私の春の依存関係は次のとおりです。

私のneo4j依存関係は次のとおりです。

残りはすべて次のとおりです。

これを解決する方法について誰か考えがありますか?誰かが何かおかしくないですか?

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

spring - spring data neo4j 3.x から 4.x へのアップグレード

Springデータneo4j 3.xでは、2つのノード間の関係シップを作成し、関係にはAPIによってこれを達成するために以前に使用された一連のプロパティが含まれています

しかし、移行後、上記の API が見つかりませんでした

ドキュメントによると

// リレーションの作成は可能でしたが、新しい API の以下のユース ケースを実現するにはどうすればよいですか

1.リレーションの重複作成を避けるにはどうすればよいですか?

2.2 つのノード間の関係シップを取得しますか?

2.2 つのノード間の関係を削除しますか?