問題タブ [bidirectional]

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.

0 投票する
1 に答える
353 参照

c# - 双方向の多対1はSELECTN+1を生成します

NHibernateでマップされた2つのクラスがあります。クラスアプリケーションは、プロパティStoreIdを持つクラスStoreを参照します。アプリケーションユーザーにはIDIDがあり、クラスStoreにはIDが割り当てられていますが、この場合はそれが問題になるとは思いません。

ApplicationUserマッピング:

ストアマッピング:

すべてのストアをロードすると、期待どおりにApplicationUserに対して左外部結合が生成されますが、オブジェクトグラフを作成するときに、NHibernateはSELECT ... FROM ApplicationUser WHERE StoreId = ?ApplicationUserを参照しないすべてのストアに対して追加を行うことを決定します。

これらのApplicationUserが存在しないことをすでに知っているはずなので、これは大規模なやり過ぎであり、まったく不要です。

NHibernateがこれらの余分なクエリを生成するのを防ぐ方法を知っている人はいますか?

編集:

クラスは次のように非常に基本的です。

0 投票する
4 に答える
251 参照

java - 双方向の関係でループを防ぐ方法

次の 2 つのエンティティがあるとします。

としょうかん

これは双方向の関係であり、おそらくすぐに壊れます。ライブラリにブックを追加しても、ブックのライブラリは更新されません。また、書籍のライブラリを更新しても、ライブラリは更新されません。

では、この双方向の関係をうまく維持するにはどうすればよいでしょうか。もちろん、add+removeで+ を実行することもできますsetLibraryが、その逆も可能ですが、これはおそらく . で終わるループを引き起こす可能性がありますStackOverflowError

0 投票する
4 に答える
1410 参照

java - 双方向関連を持つクラスの equals() メソッド

equalsJava クラスBookとアプリケーションにメソッドを実装しようとChapterしています。Bookには のセットがありChapterChapterには関連する がありBookます。双方向の関連付けは次のように表示されます。

今私は実装しようとしequalsましたChapter

ここで、本の分野も比較する必要があるかどうか疑問に思っています。それは無限ループを開始しませんか?equalsこのような双方向の関連付けのメソッドを実装する正しい方法は何ですか?

0 投票する
0 に答える
766 参照

hibernate - 休止状態での双方向の非対称関係のマッピング: OneToOne-ManyToOne

特定のプロパティの現在の状態を表す別のエンティティへの参照を持つエンティティがあるため、変更履歴を追跡できます。このために、対称ではない双方向の関係を定義しました。OneToOne が永続性を担当し、両方のエンティティが他方への参照を保持しているため、一方から最新バージョンを取得し、他方で取得できます。エンティティのすべてのバージョン。これは私のマッピングです:

A エンティティでは:

および AVersion エンティティで:

これで、A を介して 1 ステップでこれを永続化できますが、列「A_id」は AVersion テーブルのすべての行で空であるため、調べている特定のエンティティ A のすべての履歴データを取得することはできません。 AVersion テーブル。この列が埋められていない理由は何ですか?

どうもありがとうございました!

PS Envers を使用してみましたが、継承の問題が原因でできませんでした。

0 投票する
2 に答える
189 参照

sql - 双方向の自己参照関連に関するクラス メソッドの問題

ユーザー ('current_user') が他の 2 人のユーザー ('user1' と 'user2') 間の互換性を評価するアプリを作成しようとしています。互換性を肯定的または否定的に評価できます。2 人のユーザーを「互換性がある」と評価すると、同じクラスの 2 つのリソース (双方向性の場合は「positive_connection」と「inverse_positive_connection」) が作成され、それらを「互換性がない」と評価すると、2 つのリソース (「negative_connection」) も作成されます。 ' および 'inverse_negative_connection')。したがって、positive_connection、negative_connection、およびユーザーのモデルがあります。

各評価リソースは、それを作成したユーザーだけでなく、それによって接続されたユーザーにも属しています。肯定的な評価と否定的な評価の両方を持つことが重要です。

これは私の問題です: すべてのユーザー ( @user) ページで、次の個別のリストを表示したい:

  1. であるユーザーoverall_positively_connected_to(@user)(すなわちpositive_connections.count > negative_ratings.count)、および

  2. であるユーザーoverall_negatively_connected_to(@user)(つまりnegative_connections.count > positive_ratings.count)。


私ができないように見えるのは、ネットレートが「互換性がある」または「互換性がない」ユーザーだけを引き出すクラスメソッドを書くことです

Michael Hartl の rails チュートリアル (私はまったくの初心者です) を読んで、User モデルに次のようなものを書く必要があると思います。


編集

SQL クエリの知識がまったくない状態から始めて、@user に (それぞれ) 否定的および肯定的に接続されているユーザーを見つけるための次の 2 つのクラス メソッドを作成しました。


しかし、それはあまり役に立ちません。私が必要としているのは、 users を取得するメソッドですoverall_positively_connected_to(user)。メソッドには2つの結合が含まれ、次のようになると思います。


しかし、ここで私は完全に行き詰まります。明らかに正しくありません。私はどこにもそのような他の例を見つけることができません...

SQLクエリに関しては手がかりがないので、これに関するどんな助けも素晴らしいでしょう。さらにコードが必要な場合はお知らせください。前もって感謝します!

0 投票する
1 に答える
7544 参照

vba - Excel の Visual Basic で作成された Word 文書の言語、テキストの方向、配置の設定

Excel シートからデータを取得し、各行の Word シートに段落を生成する Excel Visual Basic スクリプトを作成しました。ドキュメントのデフォルト言語はヘブライ語で、テキストは右揃え、方向は右から左です。段落の 1 行 (最後の行) について、言語を英語、方向を左から右、配置を右に設定したいと考えています。次に、次の段落の最初の行をヘブライ語に戻し、方向を右から左に、配置を右にします。段落の最後の行にいるときに Word でマクロを記録し、ホーム、Shift End を押し、ツールバーのアイコンをクリックして言語、方向、配置を必要に応じて変更すると、次のようになります。

驚いたことの 1 つは、言語の変更が、方向や配置のようにオブジェクトのプロパティではなく、キーボードを使用しているかのように記録されることです。これをExcel Visual Basicに変換するにはどうすればよいですか? 問題の行は現在、次を使用して追加されています。

ありがとう、

エルンスト

0 投票する
1 に答える
1244 参照

java - Java でクライアント/サーバー側の双方向通信フィードバック システム用のサーバーを構築しますか?

シナリオ: ユーザーは、ユーザーが指定したタスクを処理するサーバー側エンティティ (サーバー) との永続的な双方向接続を形成するクライアント ソフトウェアにログインします。サーバーサイド エンティティは、ユーザーのタスクの処理中にエラーが発生したり、さらにユーザー入力が必要になったりすると、クライアント ソフトウェアに通知し、クライアントが何をすべきかを決定するまで待機します。クライアント ソフトウェアは、新しいユーザー指定の入力を受け取り、これをサーバー側に送信します。サーバー側は、新しいユーザー指定の入力で最後に停止したところから続行します。このフィードバック サイクルは、処理が完了するまで続きます。段階的に更新されるユーザー入力はすべてサーバー側に保存され、クライアント ソフトウェアからアクセスおよび変更できます。したがって、クライアントが特定の入力を削除すると、その変更はすぐにサーバー側に反映されます。

クライアント側では、ソケットを使用してサーバーに接続していると思われます...

サーバーについては、Jetty や Netty のようにさまざまな Java サーバーがたくさんあるようで、少し迷っています。また、ここで車輪を再発明しようとしないように注意を払っています。

サーバーの構築は正しいアプローチですか? またはオンデマンドで特定のタスクを完了する Web サービスを構築しますか?

また、万能のソリューションを探しているだけでなく (おそらく希望的観測)、私の現在の状況に関するあらゆる洞察を受け入れています。

0 投票する
2 に答える
3782 参照

java - TCPソケットJava実装を介した双方向JSON-RPC

JSON-RPCプロトコルのJava実装が双方向サポートで存在するかどうかを誰かが知っていますか(クライアント/サーバーがなく、両方のエンティティが同じメッセージを送受信できます)。

私はそれがPythonに存在することを知っています:bjsonrpc

ありがとう!

0 投票する
1 に答える
9118 参照

hibernate - Hibernate: 1 つを親とする双方向の 1 対多

「1」を親として双方向の1対多の関係を設定しようとしています

私には親がいます:

と子供:

Hibernate の公式ドキュメント(2.2.5.3.1.1) の推奨事項を使用しました。ただし、Hibernate は CuePoint が子エンティティであることを認識していないようです。そのため、CuePoint を削除すると、VideoOnDemand も他のすべての CuePoints と共に削除されます。

私は何を間違っており、正しい方法は何ですか?