問題タブ [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.
java - SDN 4 + OGM 1.1.1 @Index(unique = true) が機能しない
この質問が以前に尋ねられたことは知っていますが、とではないようSDN 4
ですOGM 1.1.1
ここに私のコードがあります@NodeEntity
こちらがrepo
メソッドを含む単体テストクラスがあります
実際に合格しました@Test
が、これは私が期待しているものではありません。Company
withname
フィールドWestpac
が既に存在するため、失敗したと思われます。
私は何かを見逃していますか、それともこれを@Index
間違って理解していますか?
ありがとう、
java - 新しい関係を追加するときに以前の関係を削除するSpring data neo4j 4の問題を修正するにはどうすればよいですか?
私は SDN4 を使用しており、新しい別の関係を追加すると以前の関係が削除されるという問題に直面しています。ここに私のシナリオがあります、
ステップ 1 Relationship エンティティを使用して、いくつかの関係を持つノードを作成します。関係エンティティを保存します。
ステップ 2 では、Spring Repository と Cypher を使用していくつかのプロパティに基づいてノードを取得し、新しいさまざまな関係を追加します。ここに私のフェッチAPIがあります:
関係エンティティを保存する
これを行うと、ステップ 1 で追加された関係は失われますが、ステップ 2 の関係は維持されます。
いくつかのデバッグを行うと、Cypher を使用したフェッチによって返された Node エンティティと Spring リポジトリの関係エンティティに null 値があることがわかります。
注: ステップ 2 を実行しない場合、ステップ 1 の関係が正しく反映されます。
何か不足している場合、またはこれが問題である場合は、誰かに知らせてください。これがサイファーのどこかにない限り、この場合の深さを指定する方法がわかりません。
spring - SDN4 - GraphRepository と互換性のあるエンティティ ライフサイクル イベント ハンドラ
私は Spring Data Neo4j 4.0.0.RELEASE を使用しており、組み込みのデータ操作イベントを利用して、その場でいくつかの監査情報 (タイムスタンプなど) を挿入したいと考えています。 ドキュメントは、これは私が直接使用している場合にのみ利用できることを示唆しているようですNeo4jTemplate
。
GraphRepository
抽象化に使用できる同様のフックはありますか? つまり、グラフリポジトリ操作にフックするためのすぐに使用できる方法はありますか (Spring DataJPA のようなものですか?) いくつかのテストを作成し、GraphRepository
.
neo4j - SDN:4 Converter への値の挿入が失敗する
以下に示すように、グラフ プロパティのカスタム コンバーターを作成しました。
エンティティ クラス
コンバータ
単体テストに合格です
ただし、以下に示すように、リポジトリから使用しようとすると。
値の注入が行われていないため、単体テストが失敗します。
コンバーター オブジェクトが SDN4 によってどのようにインスタンス化されるのか疑問に思っています。ここで何が間違っているのかわかりません。SDN 3.4 では、同様のアプローチが使用されていました。SDN 4 にアップグレードしたときに壊れ始めました。
neo4j - 関連するすべてのエンティティを Neo4jSessionFactory.queryForObject (または同様のもの) でロードします
neo4j-ogm を使用して、2 つのデータベース呼び出しを含む次のコードを作成しました。データベース呼び出しを 1 つだけにしたいのですが。
最初のデータベース呼び出しは
neo4jSession.queryForObject(Member.class, query, parameters);
2 番目のデータベース呼び出しは
return (Member)super(find(member);
super
はreturn session.load(Member.class, member.getId(), 1);
はどこsession
ですかneo4jSession
。
最初の API 呼び出しではノード / オブジェクトのみがフェッチされ、関連するノード / オブジェクトはフェッチされないため、2 番目の API 呼び出しを行います。2 番目の API 呼び出しは、ノードとそのすべての関係を更新します。
たった1回のデータベース呼び出しでこれらすべてを効率的に行う方法を知っている人はいますか?
queryForObject は、他の多くの neo4jSession メソッドがサポートしている可変深度をサポートしていないようです。
java - Spring Data Neo4j 4 でエンティティと関係を永続化するために同時要求を送信すると、NPE がスローされる
他のいくつかのエンティティとの関係を含む Node エンティティを永続化しています。この永続化は、一度に 1 つずつ実行すると問題なく動作しますが、これを同時に実行すると、org.neo4j.ogm.mapper.EntityGraphMapper で NPE が発生します。
これが私のNodeエンティティの核心です:
(@Transactional)でGraphRepositoryを使用することと、トランザクションでセッションを使用することの両方を永続化しようとしましたが、両方のシナリオで、同時実行で同じ問題が発生しました。
どうすればこの問題を解決できるか教えてください。同時リクエストを砲撃するとこの問題が発生するため、これがコードフロー自体に関係しているかどうかはわかりません。
同時リクエストを送信するコードについて Vince から要求されたように、私は Play で axon cqrs フレームワークを使用しており、複数の同時リクエストを Play アプリケーションの REST API に送信します。これは、axon を介して、postProduct メソッドを介して Neo4j への同時書き込みを呼び出します。ここに私の書き込みコードがどのように見えるかがあります。
メソッドxtPostProductのセッションだけでなく、GraphRepositoryで@Transanctionalを試しました。
spring - Spring OGM-モデリングエンティティ
ある訪問者が居住者への保留中の訪問リクエストを作成するシナリオがあります。次に、居住者からの返信に基づいて、訪問が承認または拒否されます。しかし、新しいリクエストを作成する前に、訪問者が居住者から永久承認訪問許可を付与されている可能性もあります。その場合、承認サイクルを行う必要はありません。
継承を使用できるようにエンティティをモデル化したいのですが、承認/不承認が居住者から訪問者に発生する間、保留中の訪問要求の関係が訪問者から居住者に作成されます。
一般的な Person クラスは次のとおりです。
Entity クラスは spring-OGM の例と同じであることに注意してください。関係タイプが設定された Resident は次のとおりです。
そして訪問者:
以下は、一般的な Visit、PendingVisit、PermanentlyApprovedVisit 関係をこの順序で示したものです。
パブリック抽象クラス 訪問{
pendingVisit を作成しようとするとき、最初に PErmanentlyApprovedVisit 関係が既に存在するかどうかを確認します。私は自分のテストを書いていますが、これが私がテストする方法です:
最後に、これは ResidentRepository メソッドです。
しかし、実行すると、次の例外が発生し続けます。
ここで達成しようとしているモデリングの種類に問題はありますか? これが Prev と Next の問題である別のスレッドを読みました。