問題タブ [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.
spring-data-neo4j - Neo4jTemplate で作成する代わりにマージする方法
私は現在、各インデックスに 2 つのノードと関係 (Part_1 -> Part_2) が含まれている配列を反復処理しており、Neo4jTemplate.save() メソッドを使用してデータベースに永続化しています。ただし、一部のインデックスには、他のノードと関係を持つ繰り返しノードがあります (Part_2 -> Part_3)。私のバージョンでは現在、ノードが既に存在する場合にマージするのではなく、毎回新しいノードと関係を作成します。
この投稿を読みましたが、2 つの同じノードが同じ ID を持つように実装する方法がわかりません。私の現在のコードは次のように機能します:
- 2 つのノードを作成する
- 関係を築く
- ノードに関係を追加する
- 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(クエリ、パラメータ);
これまでに見た、パラメーターに複数のノードを含むすべての例は、呼び出されたときに単に全体を反復処理するだけです。参照している特定のノードを指定できるパラメーターを持つ例は見つかりませんでした。特定のノードを参照するパラメータを作成するにはどうすればよいですか? 前もって感謝します!
java - ページ コンテンツの SDN4 カスタム クエリ ページネーションの代替
現在、SDN4 ではページネーションはサポートされていません (参照: Spring Data Neo4j 4 でのページングと並べ替え)
結果の一部を取得するために SKIP 句と LIMIT 句を独自に指定することは可能ですが、このシステムでは、カスタム ページング クエリを実行するときに返される Page から getTotalPages()、isFirst()、および isLast() の値も必要です。
SDN4 / OGM を使用してこれらの値を取得する別の方法はありますか? または、これを自分で実装するために提供できるコードへの推奨事項/参照はありますか (おそらく Page オブジェクトの構築において)?
ありがとう!
neo4j - Neo4j: プロパティ配列に対する Cypher クエリ
以下のような文字列の配列リストである「エイリアス」という名前のプロパティを持つドメインクラスがあります。
エイリアスには次の値が含まれます: {"John Doe","Alex Smith","Greg Walsh"}
以下に示すリポジトリクエリを使用して、「今日スミスを見た」のようなクエリを作成し、配列値の出力「アレックススミス」を取得できるようにしたいと思います。
上記のようなさまざまなクエリを試してみましたが、入力クエリが配列値と正確に一致する場合にのみ一致します。
入力クエリの部分文字列を配列値と一致させたい。
例: 入力クエリ: 「I saw Smith today」 出力: 「Alex Smith」
neo4j - Neo4j : loadByProperty はノードに属さない他のオブジェクトをロードしています
私の構造は次のとおりです。
会社 -> ユーザーのセットを持つ -> 各ユーザーはポリシーのセットを持つ -> 各ポリシーは会社用です。
サンプル グラフ構造:
会社 (c1) には 2 人のユーザー (u1、u2) がいて、ポリシー (p1) は会社 (c1) に属しています。"u1" がポリシー (p1) を取得しました。「u2」にはポリシーがありません。
「loadByProperty」メソッドで u2 をロードしようとすると、User2 オブジェクトと対応する Company(c1) が期待されます。
ただし、ポリシー (p1) も読み込まれ、「u2」オブジェクトに設定されます。
クラス構造;
ユーザーの取得方法:
SDN 4 (マイルストーン バージョン) を使用します。
助言がありますか?よろしくお願いします。
spring - スプリング ブート アプリケーションを使用した neo4j.ogm の関係の問題
私のプロジェクトでは、スプリング ブートで org.neo4j.ogm を使用しています。@RelationshipEntity を使用して関係を作成しようとしていますが、正常に作成されることを意味します。ただし、複数対 1 の関係はサポートしていません。
ここでは、RELATED_TO_ScTaxonomy の関係でブループリントと ScTaxonomy の関係を作成しています。そして、catalogueBlueprint クラスの関係プロパティを追加したいと考えています。
つまり、catalogueBlueprint クラス値を持つ Blueprint-(RELATED_TO_ScTaxonomy)-ScTaxonomy が RELATED_TO_ScTaxonomy に保存されました。
サービスを再起動したら、新しい接続を作成します。これは、既に作成された関係が失われ、新しく作成された関係のみが保存されることを意味します。
私はクエリを使用しています
spring - Spring Data Neo4j の byId の派生クエリが正しくない
User と Connection の 2 つのエンティティと、2 つの適切なリポジトリがあります。両方のエンティティに@GraphId id
フィールドがあります。接続エンティティにはUser user
フィールドがあります。
ConnectionRepository インターフェイスに、次のメソッドを追加しました。
しかし、うまくいきません。不正な暗号クエリが生成されます。次のような句が含まれているため、間違っていると思います。
id
プロパティではないため、機能していません。それは違いない:
これはバグですか?いずれにせよ、どうすればそれを機能させることができますか?
neo4j - カスタム Spring Data Neo4j リポジトリ メソッドの深さを制御するには?
たとえば、ユーザーのリストを名前で取得したい場合:
次に、読み込み深度を 2 に設定する方法を教えてください。
SDN 4.0.0.RC2 docsで答えを見つけようとしましたが、この問題については何も含まれていません。
spring - 更新を実行すると、Spring Data Neo4j Repository.save が正しく動作しません
リポジトリ経由で次のアクションを実行しようとしました (SDN 4.0.0.RC2):
- 価値
entity
のある財産で貯めるnull
- 再度保存
entity
(つまり、更新) しましたが、プロパティに値が設定されました
この場合、更新は行われません。値はまだ null です。バグですか?