問題タブ [bidirectional-relation]
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 - Neo4j で双方向の関係から単一の関係を照会する
双方向の関係から一方向の関係だけを示すことはできますか?
(n)-[:EMAIL_LINK]->(m)
(n)<-[:EMAIL_LINK]-(m)
java - Hibernate 双方向マッピング、子を保存しても親が更新されない
最初の assert ステートメントは成功しますが、2 番目のステートメントは成功しません。コードをステップ実行すると、データベースは各コミットで適切に更新されています。ただし、セカンダリ エンティティ オブジェクトが更新されても、プライマリ エンティティは更新されないように見えます。
@OneToMany アノテーションに CascadeType.All を追加したり、セッションをフラッシュしたりするなど、失敗した解決策をいくつか試しました。セカンダリ エンティティがデータベースを保存して変更した後、プライマリ エンティティを更新するにはどうすればよいですか?
私のエンティティクラスは次のようになります:
dependencies - UML クラス図で双方向の依存関係を使用することは可能ですか?
私は 2 つのクラスを持っています。それらはより複雑ですが、それは重要ではありません..UML クラス図でこの依存関係をどのように描画すればよいですか? 私はそれがどのように見えるべきかわかりません
このようなものを描くことができますか?またはどのように見えるべきですか?
grails - 抽象クラスでの Grails 双方向の関係
抽象クラスを使用して Grails ドメイン モデルを定義しようとしています。相互に 1 対 1 の双方向関係を持つ 2 つの抽象クラスを定義する必要があり、それらを機能させることができません。
ドキュメントの Face-Nose の例に基づく説明:
私はこの例を実装し、期待どおりに動作するテストを作成しました。関係の終わりを設定すると、grails はもう一方の端を設定します。
これら 2 つのクラスを抽象クラスとして宣言し、2 つの具象サブクラス (ConcreteFace と ConcreteNose 属性なし) で同じテストを繰り返すと、2 番目のアサーションは false になります: testNose.face は null です。
私は何か間違ったことをしていますか?そうでない場合、どうすれば抽象ドメイン クラスの関係を因数分解できますか?
java - Java オブジェクトのシリアル化と JSON への変換
私はJavaオブジェクトを持っています。他のさまざまな種類の Java オブジェクトへの参照、場合によってはそれ自体への参照を持つ多数のフィールドがあります。このオブジェクトは、双方向の参照 (またはサイクル) を持つマップ (またはグラフ) として最もよく説明できます。その構造を分析する権限はありませんが、問題を解決するには、このグラフをシリアル化し、JSON 文字列に格納する必要があります。
ライブラリクラスを使用してオブジェクトの構造を実際に見ることができないという事実は、私の唯一のオプションです(私が考える限り)。json-io、json-lib、google genson、gson、flexjson を試しました。しかし、これらのライブラリはすべて、サイクルが存在するためにスタックして例外をスローするか、json を返すことができます (json-io のみがこれを行います) が、多くの重要なフィールドがスキップされます (遅延ロードされるもの)。 、およびゲッターが必要です)。
質問: 私の問題に対処するためだけに上記のライブラリをテストしているときに、見落としている可能性のあるものはありますか?
私が持っている Java オブジェクトは非常に複雑ですが、Facebook のような大きな Web サイトで使用される可能性のあるオブジェクトほど複雑になるとは思いません。私の問題に対処するために使用できるいくつかの主要なライブラリとその特定の構成は何ですか?
hibernate - JPA での双方向の関係
私は非常に基本的なものを欠いています。以下の 2 つのエンティティDepartment
(逆側) とEmployee
(所有側) が から までの 1 対多の関係を形成しDepartment
ていEmployee
ます。
Department.java
従業員.java
以下に示すステートレス EJB (CMT を使用) のいくつかのメソッドは、それぞれ永続化、マージ、および削除操作を実行します。
これらのメソッドは、非トランザクション環境で、関連付けられたアプリケーション クライアントによって順番に (1 つずつ) 呼び出されます。
List<Employee>
関係の逆側のリスト ( ) は、上記のようにすべての操作中に正しい状態を自動的に反映します。
- エンティティが永続化されると、逆側のリストにリストされます (新しく永続化されたエンティティを逆側
Employee
に明示的に追加するわけではありません )。Employee
List<Employee>
- エンティティがマージされると、
Employee
エンティティに加えられた変更は、反対側の対応するエンティティに自動的に反映されますList<Employee>
(反対側の従業員のリスト ( ) が保持する対応するエンティティを明示的に変更するわけではありませんList<Employee>
)。 - 同様に、
Employee
エンティティが削除されると、関係の逆側のリストからも削除されます (逆側のリストからそのエンティティを明示的に削除しているわけではありません)。
現在、EcliseLink 2.6.0 を使用しています。次のテキストと一致しないような動作が見られるのはなぜですか?
すべての双方向の関係と同様に、双方向の関係を維持するのはオブジェクト モデルとアプリケーションの責任です。JPA には魔法はありません。コレクションの片側に追加または削除する場合は、反対側にも追加または削除する必要があります。オブジェクトの破損を参照してください。技術的には、リレーションシップの所有側のみを追加/削除すると、データベースは正しく更新されますが、オブジェクト モデルが同期されなくなり、問題が発生する可能性があります。
http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany#Bi-directional_Many_to_Many
java - 「一」側が所有するjpaマップ
ある種の複合パターンを持つツリーのようなデータ構造があります。抽象クラス Element には、CompositeElement と SingleElement があります。次のようになります。
これまで、関係は一方向でした。うまくいきました。しかし、サブ要素から親要素に移動する必要があるユース ケースが表示されました。だから私がやりたいのはこれです:
しかし、@ManyToOne アノテーションは「mappedBy」属性を許可しません。
ドメイン ビューから、親はデータ構造内の子オブジェクトを所有します。その逆ではありません。これは、熱心なフェッチとカスケード ルールによっても強調されます。
リレーションシップの所有権が子側にある場合、 child.setParent(p) は実際には機能しません。これは、ここでマップのキーが欠落しているためです。
親の側で関係の所有権を保持しながら、双方向にする方法はありますか?