問題タブ [neo4j-ogm]

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

neo4j - Spring Data Neo4j は属性を上書きします

update(User)SDN 4.0.0を使った機能を持ったサービスを書いてみました。関数は、データベースに同じ ID を持つユーザーが存在するかどうかを確認し、存在する場合は、このユーザーを新しいユーザーで上書きします。

UserRepository拡張するを持っているGraphRepository<User>私は、次のコードを書きました:

findOne(id)が呼び出された瞬間から、ユーザーオブジェクトのすべての属性がデータベース内のユーザーで上書きされるため、更新する各ユーザーがデータベース内の状態のままになるという問題があります。

existsById(Long id)クエリ"Match (n:User) where ID(n)={0}" で注釈が付けられた関数をリポジトリに追加することにより、問題を既に修正しました。

ただし、取得しようとしたオブジェクトと同じ ID を持つオブジェクトを SDN が上書きする理由については、まだ興味があります。参照が関係していると思いますが、その利点は実際にはわかりません。

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

neo4j - Neo4j と失われた関係

私はneo4jの非常に奇妙な動作をしています。2 つのノード間の関係が失われることがありますが、現在は問題を再現できません。

たとえば、次のノードがあります。

同じユーザー プロパティを変更すると、"managed_by" の関係が失われることがあります。

問題がわかりません...おそらく UserEntity に着信関係がないのでしょうか? 常に必要ですか?

ありがとうございました!

アップデート

エンティティを変更するコードを単純化します。

コントローラーの更新を呼び出した後、次のことがあることがあります。

  • ユーザーエンティティが変更されました
  • worker エンティティは変更されていません (2 つの呼び出しの間の例外である可能性があります)
  • managed_by 関係が削除されました!!!!

アップデート

数日後、問題が別の時間に発生し、ログが増えました

ログからわかるように、"flushing start node of..." の後、関係 "managed_by" は neo4j によって削除されます。

これらのログが説明を見つけるのに役立つことを願っています!

アップデート

その他のログ

この問題は、エンティティを保存するときに発生します。エンティティ(POJO)にはWorkerEntityへの参照がないため、neo4jが言った理由

コンテキスト初期化とは何ですか?

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

java - Spring-data-neo4j は複数のパスを取得します

現在、2 つのノード間のパスを取得するために spring-data-neo4j を使用しています。リポジトリは次のとおりです。

ただし、例外は、1行のみが期待されているが2つ見つかったということです。

詳細については、コードを次のように変更した場合:

domain に正しくマッピングされていない応答を取得できますGLNode。たとえば、idnode が欠落しています。

最短経路のみを見つけた場合、たとえば、

その後、すべてが正常に機能します。

では、neo4j からクエリされた複数のパスを Java の単一のオブジェクトにマップする正しい方法は何ですか?

ありがとう。

=============== 更新 ==============

ノードのIDを取得するだけで一時的な解決策を思いつきました。つまり、

クライアントがすべてのグラフを知っている場合にのみ機能します。

===================== 更新 2 ======================

1 行のみが予期されますが、実際には次のコードで 2 つの例外がスローされます。

例外の詳細は次のとおりです。

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

neo4j - Neo4j は列挙型を無視します

Neo4j での作業 ユーザーがアクティブかどうかを示す状態を持つ TSUser オブジェクトを作成しました。Neo4j DB でユーザーを作成すると、状態が一時的であるかのように表示されません。ただし、(デバッグ中に) コードにユーザーをロードすると、enum-attribute が設定されます。Neo4j クライアントで見たいと思います。

は次のTSUserようになります。

Stateありながら

TSUser を永続化した後、「MATCH n RETURN n」を使用してクライアントで彼をフェッチし、図に示すように結果を取得します。 状態のないユーザー

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

neo4j - Neo4J では、親ノードをロードすると、id=null の重複する子がロードされます

以下は、A(UserN) とB(UserRoleN) をオブジェクトとするモデルです。

データベースでは、次のグラフ構造があります。

A のロード中session.load(A.class, id, 1)に、合計 2 つの B オブジェクトが A オブジェクトの下にロードされます。このオブジェクトでは、B の ID の 1 つが null であり、他の B オブジェクト ID が neo4j によって生成されます。

データベースに B オブジェクトが 1 つしかない場合に重複 B がロードされる理由を理解できません。