問題タブ [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.
spring - Spring Data Neo4j 4 - クラスの ID フィールドが見つかりません
新しいプロジェクトを作成し、単純なクラス、マスター、およびペット クラスを作成しようとしています。
これが私のマスタークラスです
これが私のペットクラスです
コントローラーで、新しいマスターを作成して保存し、以前に作成したマスターであるペットを作成しようとしています。
spring - Spring Data Neo4j 4 - @Fetch を findAll(int depth) に変更すると、常に null が返される
User、Role、UserRoleの3つのクラスがあります。UserRole のデータを取得したいのですが、常に NULL を返します。
これがユーザークラスです。
これが私の役割クラスです
そして、これは私の UserRole クラスです
すべてのユーザー データを表示したいのですが、結果には常に userRoles NULL が表示されます。私は findAll(1) と findAll(2) を使用していますが、違いはありません。
SDN 3 とは異なり、フィールドに @Fetch を追加するだけです。SDN 4 では、@Fetch アノテーションはありません。すべてのデータを取得するにはどうすればよいですか?
アップデート!!
Luanne answer のようにクラスを変更し、 User クラスを次のように変更しました。
データを保存して表示すると、ロールは次のように表示されます。
しかし、その後、すべてのデータを再度表示しようとすると、次のように再び NULL に戻ります。
これは私のリポジトリですhttps://github.com/daviduck123/neo4j-ogm-infiniteloop
java - Spring Data Neo4j のカスタム クエリが関係を取得しない
そのため、いくつかの複雑な操作については、グラフ リポジトリのカスタム ファインダー メソッドで @Query アノテーションを使用してカスタム Cypher クエリを使用しています。ただし、ノードを取得する間、その直接的な関係 (つまり、1 つのレベルのみ) は取得しません。
私はそれらを次のように使用しています-(コードはグルーヴィーです):
それらは次のように関連しています。
関係が存在する場合、Neighbor A と B は両方とも null です。どうする?Spring Boot 1.2.7.RELEASE と spring-data-neo4j:4.0.0.RELEASE を使用しています
java - Spring-data-neo4j 4.0.0 リポジトリは、グループ化する代わりに複数の REST 呼び出しを行います
私は Spring-data-neo4j 4.0.0 を Neo4j 2.3.1 で使用しています。
entityRepository.save(Iterable multipleObjects);
実際には、Neo4j サーバーで複数の REST 呼び出しを実行
し
ます。 "CREATE..."}]} (保存するオブジェクトごとに 1 回実行! )
- トランザクションをコミットするための POST (1 回実行、OK)
すべてのエンティティ作成を 1 つの REST POST 呼び出しにグループ化できる場合 (複数のステートメントを使用)。
このユース ケースにはパフォーマンスの問題があり、SDN を正しく使用していないのではないかと考えています。
それとも、これは近い将来に改善される予定の既知の問題ですか?
java - Neo4j OGM フィールドが継承されない
neo4j OGMライブラリで問題が発生しました。ライブラリドキュメント ページの指示に従って、エンティティのすべての共有フィールドと機能を含む抽象的な親エンティティを実装しました。次に、このクラスを具体的なクラスで継承して実行しようとするとsession.save
、このエラー メッセージが表示されますMappingException: No identity field found for class: models.nodes.User
。次に、id フィールドを親クラスから子具象クラスに引き下げようとしましたが、保存操作は成功しましたが、親クラスの他のフィールドは DB に永続化されませんでした。私の結論は、OGM は何らかの理由で親フィールドを無視するというものでした。
ここに私の親抽象クラスがあります:
そして、ここに私の具体的な子クラスがあります:
親クラスをマップされたパッケージの内側と外側の両方に配置しようとしました。<<-- 編集: これは実際には問題でした。親クラスは OGM によってマップされませんでした
必要な注釈が不足していますか? 親クラスが正しくマップされていませんか? SBTビルダーを使用して、MavenのNeo4j OGMバージョン1.1.4でPlay Framework 2.4を使用しています。
ありがとう。
spring - GraphRepositoryパターンを使用してneo4j暗号クエリを動的に構築することは可能ですか?
CONTEXT : neo4j データベースに支えられた Java Spring Boot システムを開発しています。「ClassRepo extends GraphRepository」構造を使用してデータベースにアクセスします。クエリの作成は、正確なクエリをハード コーディングし、その特定の部分を指定されたパラメーター (この場合は courseName) に置き換える単純なケースです。
これはすべて問題なく機能し、1 つまたは複数の結果を問題なく返すことができました。しかし、私のプロジェクトが発展するにつれて、検索するためのオプションの大きなリストを提供するようになりました (ファセット検索、Amazon 製品フィルターを考えてください)。選択された、または選択されていないフィルタリングオプションのすべての順列に対して静的暗号クエリを作成するのはばかげているようです。
私の解決策(試み)は、クエリの一部をパラメーターとして渡すことでした。つまり、文字列クエリビルダーを作成します。
ここで、「returnCourse」は「RETURN course」という値を持つ文字列です。クエリ文字列に静的に入力された「RETURN course」が機能することは事実です。私はそれを削除し、文字列値をパラメーターとして渡して、同じクエリを生成して実行時に実行できるかどうかを確認しました。
これは実際には成功せず、エラーページに戻り、次のスタックを出力しました: http://pastebin.com/J9VBfpxw
質問: GraphRepository で使用されるサイファー クエリ文字列に文字列を追加/挿入して、クエリを動的に変更できるようにする方法はありますか。つまり、実行時に一致クエリの末尾に where 句を追加します。
java - Spring Data Neo4j: ロールバック例外によってオーバーライドされるアプリケーション例外
長いトランザクションがあり、例外が発生しても Web アプリケーションは引き続き動作しますが、データベース (REST によるリモート) を含むいくつかのアクションを呼び出すと、アクションが失敗するまでに時間がかかります。
ロールバックを実行しようとすると、サーバーが応答しないため、アクションを実行できません
手伝って頂けますか?ありがとうございました
java - Spring Data Neo4j と連鎖サービスでのトランザクション
たとえば、サービスがあります
別のサービスのメソッドを呼び出す
GraphRepository のメソッドを呼び出します。
GraphRepository メソッドの実行中に問題がなければ、問題なく動作しますが、GraphRepository で例外が発生した場合、ロールバックは機能せず、リモート データベースへのすべての呼び出しがブロックされます。
b() の Transactional アノテーションを削除すると、GraphRepository で例外が発生した場合でも、正常に動作します。
この振る舞いを説明することはできません。
手伝って頂けますか?