問題タブ [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.
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 つとISO9001
2 つのISO14001
オブジェクトがあります。私が期待するものの代わりに、それぞれに と への 2 つのリンクがA:1
ありA:3
ます。
spring-data-neo4j-4 - Spring-Data-Neo4j Repository の @Query で depth > 1 を指定
spring-data-neo4j リポジトリを使用して、@Query を使用し、深さが 1 より大きいノードをロードできますか?
私の例は
このクエリを使用すると、NodeTypeA が返されます。ただし、NodeTypeA の隣人も必要です。
ogm セッションを @Inject して、それを使用して必要な結果を得ることができますが、@Query で行う方がよいでしょう。
ドキュメントに次のようなメモがあることに気付きました。
現在のバージョンでは、派生ファインダーはページング、ソート、またはカスタムの深さをサポートしていません
しかし、 @Query を使用するメソッドは派生ファインダーですか?
spring-data-neo4j-4 - SDN4 を使用した関係の予期しない削除
データ モデルのテストで、neo4j-ogm コードを spring-data を使用するように変換した後、以前に合格したテストが失敗しました。ただし、spring-data-neo4j が問題の原因ではないことはほぼ確実です。もっと概念的に欠けているものがあります(セッションや汚れなどについて?)
テストの動作は次のとおりです。
以前は、ノード A がそのプロパティで更新され、テスト実行後にデータベース内のノード A とノード B の間に関係が存在していました。
ただし、変換後の結果は同じですが、オブジェクト A が 2 回目に保存された後、ノード A とノード B の間の関係がデータベースに存在しなくなる (削除される) ことを除きます。
この動作を変更するために私がしたことはありますか? 期待される動作は何ですか?
java - Neo4j OGM グラフがトランザクション内の変更を上書きする
neo4j-ogm で見られた奇妙な動作について、ようやく説明がついたような気がします。当初、equals/hashcode の実装に関係があると考えていましたが、そうではありません。
ogm はキャッシュされたグラフのコピーを保持しているようで、トランザクション内ではすべての取得が同じメモリ オブジェクトを指しています。
動作を実証するための単体テストを作成しました (機能しない疑似コードの一部を以下に示します)。
これは私たちにとって問題のように見える特殊性です。
以前にこれを確認し、取得したオブジェクトの深さを変更して (グラフがメモリ内のものを元に戻さないようにするために) 排除しましたが、サイファー クエリを使用していない場合はカスタマイズできません。
この問題を回避する方法を教えてください。
neo4j - Spring Data Neo4j 4.0.0 でパスクエリを使用してノード ID を取得するには?
次のノードから作成されたグラフがあります。
私の Spring Data リポジトリには、これらのノード間の最短パスの Cypher クエリが含まれています。
2 番目の Iterable は、実際のパスをノードと関係のリストとして返します。これらのそれぞれは、プロパティを持つハッシュ マップとして表されます。このような単純なグラフの場合:
A -- B -- C
とのfindShortestPaths
間のメソッドの結果パスには、次の5 つの要素が含まれます。A
C
空のマップはノード間の関係を表していると思いますが、この場合、プロパティはありません。id
私の問題は、ノードを表すマップにプロパティが含まれていないことです。
質問: ハッシュ マップではなく、対応するエンティティ オブジェクトとしてノードを返すことは可能ですか? そうでない場合、返されたハッシュ マップ内のパス ノードの ID を取得するにはどうすればよいですか?
spring - SDN4 構成 - java.lang.annotation.AnnotationFormatError: 無効なデフォルト: ...EnableNeo4jRepositories.repositoryBaseClass()
Spring Data Neo4j 4 で次のエラーが発生します。依存関係の競合である可能性があると思いますが、何が原因かわかりません。
上記のハイライトのようです。
私の春の依存関係は次のとおりです。
私のneo4j依存関係は次のとおりです。
残りはすべて次のとおりです。
これを解決する方法について誰か考えがありますか?誰かが何かおかしくないですか?
spring - spring data neo4j 3.x から 4.x へのアップグレード
Springデータneo4j 3.xでは、2つのノード間の関係シップを作成し、関係にはAPIによってこれを達成するために以前に使用された一連のプロパティが含まれています
しかし、移行後、上記の API が見つかりませんでした
ドキュメントによると
// リレーションの作成は可能でしたが、新しい API の以下のユース ケースを実現するにはどうすればよいですか
1.リレーションの重複作成を避けるにはどうすればよいですか?
2.2 つのノード間の関係シップを取得しますか?
2.2 つのノード間の関係を削除しますか?