問題タブ [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.
java - Neo4j OGM グラフがトランザクション内の変更を上書きする
neo4j-ogm で見られた奇妙な動作について、ようやく説明がついたような気がします。当初、equals/hashcode の実装に関係があると考えていましたが、そうではありません。
ogm はキャッシュされたグラフのコピーを保持しているようで、トランザクション内ではすべての取得が同じメモリ オブジェクトを指しています。
動作を実証するための単体テストを作成しました (機能しない疑似コードの一部を以下に示します)。
これは私たちにとって問題のように見える特殊性です。
以前にこれを確認し、取得したオブジェクトの深さを変更して (グラフがメモリ内のものを元に戻さないようにするために) 排除しましたが、サイファー クエリを使用していない場合はカスタマイズできません。
この問題を回避する方法を教えてください。
spring - spring data neo4j 3.x から 4.x へのアップグレード
Springデータneo4j 3.xでは、2つのノード間の関係シップを作成し、関係にはAPIによってこれを達成するために以前に使用された一連のプロパティが含まれています
しかし、移行後、上記の API が見つかりませんでした
ドキュメントによると
// リレーションの作成は可能でしたが、新しい API の以下のユース ケースを実現するにはどうすればよいですか
1.リレーションの重複作成を避けるにはどうすればよいですか?
2.2 つのノード間の関係シップを取得しますか?
2.2 つのノード間の関係を削除しますか?
neo4j - No Host 例外を返す Neo4j OGM
macbook でローカルに neo4j-community-2.2.5 を実行しています。neo4j-ogm バージョンを使用してコードに接続しようとしています: 1.1.2
セッションファクトリは次のとおりです。
私はエンティティクラスを持っています:
サービス :
一般的なサービス:
呼び出しコード:
アプリケーションサーバーではなく、単純なJavaプロセスとしてEclipseでコードを実行しています。
トレース付きの完全なログは次のとおりです。
誰かが私が間違っているところを提案してもらえますか? これより前は、使用していたコード ベースがまったく異なっていました。
しかし、後で、prod 環境で実行されている neo4j サーバーに接続したい場合、これは正しい方法ではないことに気付きました。サーバーを起動したいので、接続はJavaとRubyクライアントを同時に介して行われます。
ありがとう!
spring-data-neo4j-4 - SDN4 - リポジトリ クエリがデータベースにヒットせず、削除操作後の読み込み時に古いデータが返される
単体テストの 1 つが古いデータを返しているようです。このテストでは、イベント (チケットが販売されているもの) からいくつかのチケットの種類を削除できるかどうかをテストしています。コードで何が問題なのかを示すコメントを残しました。
// この時点で、1 つのチケット タイプが localhost:7474 で確認できます (予想どおり)
// この時点で、localhost:7474 で 2 つのタイプのチケットが表示されます (予想どおり)
// この時点で、1 つのチケット タイプが localhost:7474 で確認できます (予想どおり)
// このコードは、ポート 7474 のデータベースが 1 つのチケット タイプを示していても、前のコードが 1 つのチケット タイプしか返さなかったとしても、2 つのチケット タイプをロードします。
eventService.loadEventByDomainSpecificId(eventId) は、以下に示すリポジトリを単純に呼び出す @Service です。サービスによるキャッシングは行われません。
neo4j - Neo4j ノードの複数のジオメトリ プロパティ
まず、ここに私のスタックの説明があります:
- GrapheneDB 上の Neo4j 2.3.0 + Neo4j Spatial プラグイン 0.15
- 私のPC上のNinja Framework 5.2.1 Javaサーバー
- エンティティ マッピング用の Neo4j-OGM 1.1.3
- ジオスタッフ用の Geotools 14.0
- REST クエリ用の ApacheHttp
プロパティ「位置」で地理的に配置されたユニットノードがあります。位置はジオメトリ (POINT、CIRCLE、または POLYGON) です。
このプロパティにレイヤーとインデックスを作成します。地理位置情報ユニットを追加できます。これはうまく機能しています。以前の質問でしたが、本当の質問が隠れていたので解決しました。
ここで、"path"、"detectionZone"、"actionZone" などの他の地理オブジェクトを定義する必要があります。そして操作は通常、「 actionZone にある他のユニットはどれですか?」です。または「ユニットのパスは検出ゾーンを横切りますか?」
これらのデータにインデックスを付けるにはどうすればよいですか? プロパティごとに 1 つのインデックス ? または、「wkt」プロパティのインデックスと、wkt プロパティを使用した検出ゾーン、アクションゾーン、およびパスの新しいノードですか?
地理概念ごとにレイヤーを作成する必要がありますか? または、すべての空間関連ノードをグループ化する一意の「geom」レイヤーですか?
neo4j - SDN 4 を使用して同じ 2 つのクラス間に複数のリレーションシップが存在する場合、リレーションシップが期待どおりに更新されない
Spring Data Neo4j 4 (4.0.0.RELEASE および Neo4j Community Server 2.2.5) を使用する Spring Boot アプリケーションがあります。SDN 4 の依存関係として、neo4j-ogm ライブラリ (1.1.4-SNAPSHOT) の最新のスナップショット バージョンを使用しています。関係エンティティ) 同じ 2 つのノード エンティティ クラス間の関係タイプによって区別されます。
失敗した統合テストの 2 つのノード エンティティ クラスは次のとおりです。
統合テストは、既存の ONE 関係がすでにデータストアにある 2 つのノードから開始します。
私は結果が
しかし、それは実際には
そのため、予想外に (少なくとも私にとっては)、新しいオブジェクトが作成および保存される前に存在していたノード間に新しい関係が作成されます。
複数の (EEE)<-[:ONE]-(d) 関係をデータストアに既に格納している場合、新しい TypeD オブジェクトが作成および保存されると、各 (d) は (EEE) への新しい [:MANY] 関係を取得します。
これの実際のアプリケーション シナリオの 1 つは、ユーザーの所有権と、他のアイテムとのライセンス関係です。したがって、TypeE は User になり、TypeD は所有またはライセンスされた Item になります。ユーザーは、同じタイプの複数のアイテムを所有またはライセンスすることができます。アイテムの所有者は 1 人だけですが、複数のユーザーにライセンスを付与できます。したがって、このテストの関係は、ONE = 所有者、MANY = ライセンシーとなります。
ここに間違いがありますか、それとも似たようなものを見た人はいますか?
java - SDN4 では、同じエンティティに対してコレクション型の複数の関係を許可していますか?
コレクション オブジェクトの異なる関係タイプを取得しようとすると、コレクション プロパティは、関係タイプがコレクション関係タイプでなくても、すべて同じエンティティ タイプを取得します。バグですか?
エンティティ Demo には、 User エンティティを参照する次の 2 つのフィールドが含まれています: user と users
「MY_USER」1つと「DEMO_USERS」2つでデモを保存すると問題ありません。しかし、グループIDでデモを見つけると、「DEMO_USERS」は3人のユーザーを返します。
出力
java - SDN4 java.lang.ClassCastException: AttributeConverter を使用している場合、java.lang.Integer を java.lang.Long にキャストできません
まず、ここで不必要なことをしているかもしれませんが、問題はそれとは何の関係もないと思います。ZonedDateTime
このコンバーター クラスを使用して、neo4j に値を保存しようとしています。
値の保存は正常に機能しているようですが、取得すると (たとえば、findOne を使用して)、次のようになります。
これはバグですか、それともこれがどのように機能するかを間違えたのですか?