問題タブ [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.
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 が上書きする理由については、まだ興味があります。参照が関係していると思いますが、その利点は実際にはわかりません。
neo4j - Neo4j と失われた関係
私はneo4jの非常に奇妙な動作をしています。2 つのノード間の関係が失われることがありますが、現在は問題を再現できません。
たとえば、次のノードがあります。
同じユーザー プロパティを変更すると、"managed_by" の関係が失われることがあります。
問題がわかりません...おそらく UserEntity に着信関係がないのでしょうか? 常に必要ですか?
ありがとうございました!
アップデート
エンティティを変更するコードを単純化します。
コントローラーの更新を呼び出した後、次のことがあることがあります。
- ユーザーエンティティが変更されました
- worker エンティティは変更されていません (2 つの呼び出しの間の例外である可能性があります)
- managed_by 関係が削除されました!!!!
アップデート
数日後、問題が別の時間に発生し、ログが増えました
ログからわかるように、"flushing start node of..." の後、関係 "managed_by" は neo4j によって削除されます。
これらのログが説明を見つけるのに役立つことを願っています!
アップデート
その他のログ
この問題は、エンティティを保存するときに発生します。エンティティ(POJO)にはWorkerEntityへの参照がないため、neo4jが言った理由
コンテキスト初期化とは何ですか?
java - Spring-data-neo4j は複数のパスを取得します
現在、2 つのノード間のパスを取得するために spring-data-neo4j を使用しています。リポジトリは次のとおりです。
ただし、例外は、1行のみが期待されているが2つ見つかったということです。
詳細については、コードを次のように変更した場合:
domain に正しくマッピングされていない応答を取得できますGLNode
。たとえば、id
node が欠落しています。
最短経路のみを見つけた場合、たとえば、
その後、すべてが正常に機能します。
では、neo4j からクエリされた複数のパスを Java の単一のオブジェクトにマップする正しい方法は何ですか?
ありがとう。
=============== 更新 ==============
ノードのIDを取得するだけで一時的な解決策を思いつきました。つまり、
クライアントがすべてのグラフを知っている場合にのみ機能します。
===================== 更新 2 ======================
1 行のみが予期されますが、実際には次のコードで 2 つの例外がスローされます。
例外の詳細は次のとおりです。
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 がロードされる理由を理解できません。