問題タブ [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 に答える
1546 参照

spring-data-neo4j - Neo4jTemplate で作成する代わりにマージする方法

私は現在、各インデックスに 2 つのノードと関係 (Part_1 -> Part_2) が含まれている配列を反復処理しており、Neo4jTemplate.save() メソッドを使用してデータベースに永続化しています。ただし、一部のインデックスには、他のノードと関係を持つ繰り返しノードがあります (Part_2 -> Part_3)。私のバージョンでは現在、ノードが既に存在する場合にマージするのではなく、毎回新しいノードと関係を作成します。

この投稿を読みましたが、2 つの同じノードが同じ ID を持つように実装する方法がわかりません。私の現在のコードは次のように機能します:

  1. 2 つのノードを作成する
  2. 関係を築く
  3. ノードに関係を追加する
  4. Neo4jTemplate.save() を使用して永続化します

CREATE ではなく MERGE に変更する必要があるのは何ですか? 永続化する前にチェックを行う必要がありますか、または SDN 4 で永続化している間にチェックする方法はありますか?

編集:

Neo4jTemplate.query() メソッドを使用して Cyper クエリを作成することにしましたが、複数のノードをマージするためのパラメーターを正しく作成する方法がわかりません。1 つのノードに対して、次のように MERGE ステートメントを正しく作成できます。

Map<String, Object> params = new HashMap<String, Object>();
Map<String, Object> node = new HashMap<String, Object>();

node.put("名前", "Part_1");
params.put("props", node_1);
String query = "MERGE( n1:Part {name:{props}.name} )";

template.query(クエリ、パラメータ);

私の目標は、2 つのノードでマージを呼び出してから、マージを再度呼び出して、1 つのステートメントで関係を作成することです。私のコードは今次のようになります:

Map<String, Object> params = new HashMap<String, Object>();
List<Map<String, Object>> マップ;
Map<String, Object> node1 = new HashMap<String, Object>();
Map<String, Object> node2 = new HashMap<String, Object>();

node1.put("name1", "Part_1");
node2.put("name2", "Part_2");
maps = Arrays.asList(node_1, node_2)

params.put("props", maps);
文字列クエリ = "MERGE( n1:Part {name:{props}.name1} )
MERGE( n2:Part {name:{props}.name2 )
MERGE(n1)-[:CREATED]->(n2)";

template.query(クエリ、パラメータ);

これまでに見た、パラメーターに複数のノードを含むすべてのは、呼び出されたときに単に全体を反復処理するだけです。参照している特定のノードを指定できるパラメーターを持つ例は見つかりませんでした。特定のノードを参照するパラメータを作成するにはどうすればよいですか? 前もって感謝します!

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

java - ページ コンテンツの SDN4 カスタム クエリ ページネーションの代替

現在、SDN4 ではページネーションはサポートされていません (参照: Spring Data Neo4j 4 でのページングと並べ替え)

結果の一部を取得するために SKIP 句と LIMIT 句を独自に指定することは可能ですが、このシステムでは、カスタム ページング クエリを実行するときに返される Page から getTotalPages()、isFirst()、および isLast() の値も必要です。

SDN4 / OGM を使用してこれらの値を取得する別の方法はありますか? または、これを自分で実装するために提供できるコードへの推奨事項/参照はありますか (おそらく Page オブジェクトの構築において)?

ありがとう!

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

neo4j - Neo4j: プロパティ配列に対する Cypher クエリ

以下のような文字列の配列リストである「エイリアス」という名前のプロパティを持つドメインクラスがあります。

エイリアスには次の値が含まれます: {"John Doe","Alex Smith","Greg Walsh"}

以下に示すリポジトリクエリを使用して、「今日スミスを見た」のようなクエリを作成し、配列値の出力「アレックススミス」を取得できるようにしたいと思います。

上記のようなさまざまなクエリを試してみましたが、入力クエリが配列値と正確に一致する場合にのみ一致します。

入力クエリの部分文字列を配列値と一致させたい。

例: 入力クエリ: 「I saw Smith today」 出力: 「Alex Smith」

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

neo4j - Neo4j : loadByProperty はノードに属さない他のオブジェクトをロードしています

私の構造は次のとおりです。

会社 -> ユーザーのセットを持つ -> 各ユーザーはポリシーのセットを持つ -> 各ポリシーは会社用です。

サンプル グラフ構造:

会社 (c1) には 2 人のユーザー (u1、u2) がいて、ポリシー (p1) は会社 (c1) に属しています。"u1" がポリシー (p1) を取得しました。「u2」にはポリシーがありません。

「loadByProperty」メソッドで u2 をロードしようとすると、User2 オブジェクトと対応する Company(c1) が期待されます。

ただし、ポリシー (p1) も読み込まれ、「u2」オブジェクトに設定されます。

クラス構造;

ユーザーの取得方法:

SDN 4 (マイルストーン バージョン) を使用します。

助言がありますか?よろしくお願いします。

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

neo4j - スプリング ブート アプリケーションを使用した neo4j.ogm での手動クエリの問題

ここに画像の説明を入力私のプロジェクトでは、スプリング ブートに neo4j を統合するために、スプリング ブート、neo4j、および org.neo4j.ogm ライブラリを使用しています。GraphRepository の findone、findall、および save メソッドを実装できます。しかし、値を挿入するために独自のクエリを使用すると、エラーが表示されました。問題の理由がわかりませんでした。指定されたクエリ `@Query("CREATE (n:Person { name : 'Andres', title : 'Developer' })") を使用しています

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

spring - スプリング ブート アプリケーションを使用した neo4j.ogm の関係の問題

私のプロジェクトでは、スプリング ブートで org.neo4j.ogm を使用しています。@RelationshipEntity を使用して関係を作成しようとしていますが、正常に作成されることを意味します。ただし、複数対 1 の関係はサポートしていません。

ここでは、RELATED_TO_ScTaxonomy の関係でブループリントと ScTaxonomy の関係を作成しています。そして、catalogueBlueprint クラスの関係プロパティを追加したいと考えています。

つまり、catalogueBlueprint クラス値を持つ Blueprint-(RELATED_TO_ScTaxonomy)-ScTaxonomy が RELATED_TO_ScTaxonomy に保存されました。

サービスを再起動したら、新しい接続を作成します。これは、既に作成された関係が失われ、新しく作成された関係のみが保存されることを意味します。

私はクエリを使用しています

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

spring - Spring Data Neo4j の byId の派生クエリが正しくない

User と Connection の 2 つのエンティティと、2 つの適切なリポジトリがあります。両方のエンティティに@GraphId idフィールドがあります。接続エンティティにはUser userフィールドがあります。

ConnectionRepository インターフェイスに、次のメソッドを追加しました。

しかし、うまくいきません。不正な暗号クエリが生成されます。次のような句が含まれているため、間違っていると思います。

idプロパティではないため、機能していません。それは違いない:

これはバグですか?いずれにせよ、どうすればそれを機能させることができますか?

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

neo4j - カスタム Spring Data Neo4j リポジトリ メソッドの深さを制御するには?

たとえば、ユーザーのリストを名前で取得したい場合:

次に、読み込み深度を 2 に設定する方法を教えてください。

SDN 4.0.0.RC2 docsで答えを見つけようとしましたが、この問題については何も含まれていません。

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

spring - 更新を実行すると、Spring Data Neo4j Repository.save が正しく動作しません

リポジトリ経由で次のアクションを実行しようとしました (SDN 4.0.0.RC2):

  1. 価値entityのある財産で貯めるnull
  2. 再度保存entity(つまり、更新) しましたが、プロパティに値が設定されました

この場合、更新は行われません。値はまだ null です。バグですか?