問題タブ [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.
c++ - 双方向イテレータのoperator<を定義するにはどうすればよいですか?
双方向イテレータのoperator<を定義するにはどうすればよいですか?(list :: iterator)
(ベクトルではなくリストを使用したい。)
java - Guava の HashBiMap をエビクションで使用する方法はありますか?
エンタープライズ レベルの Java バックエンド アプリケーションを使用しており、トークン ベースのユーザー認証を組み込む必要があります。フロントエンドは PHP を利用し、SOAP を介して Java バックエンドと通信します。
問題を解決するために Guava の HashBiMap を使用することを考えました。UUID トークンをキーとして生成し、User オブジェクトを値として静的 HashBiMap に格納できるので、私にとっては便利です。ユーザーが最初に正常にログインすると、ユーザーは HashBiMap に追加され、ログイン応答で生成された UUID トークンが返されます。同じユーザーに対する後続の SOAP 要求は、トークンのみを使用して行われます。
私が今直面している問題は、これらのトークンが 30 分間非アクティブになった後に削除できるようにする何らかの削除ロジックが必要なことです。私の調査では、HashBiMapは Guava のMapMakerのようにエビクションをネイティブにサポートしていないようです。
HashBiMap をどのように使用し、非アクティブな場合の立ち退きをサポートするかについて、誰かに推奨事項はありますか? このアプローチが理想的でない場合、私は他の戦略を受け入れます。
アップデート:
HashBiMap を使用する必要があると思います。ユーザーがまだマップ内にある場合は、マップ内のユーザー オブジェクトを検索し、既存のトークンを取得できるようにしたいからです。たとえば、ユーザーが 30 分以内にブラウザーを閉じ、数分後に戻って再度ログインした場合、既存のトークンを返すことができるように、ユーザーがマップに既に存在するかどうかを確認する必要があります (技術的にはまだ有効です)。
ruby - Ruby の双方向ハッシュ テーブル
Ruby で双方向ハッシュ テーブルが必要です。例えば:
メソッドrfetch
は逆フェッチを意味し、私の提案にすぎません。
次の 3 つの点に注意してください。
- 複数のキーが同じ値にマップされている場合は
rfetch
、それらすべてを配列にパックして返します。 - 値が配列の場合、配列
rfetch
の要素の中からそのパラメーターを探します。 - 双方向ハッシュとは、 と の両方が一定時間内に実行されることを意味し
fetch
ますrfetch
。
そのような構造は Ruby (外部ライブラリを含む) に存在しますか?
そのうちの1つが変更されたときに同期される2つの一方向ハッシュを使用して実装することを考えました(そして、同期の問題を回避するためにクラスにパックします)が、既存のソリューションを使用できるでしょうか?
rmi - 2台のRMIサーバーを使用しないRMI双方向通信
私は以前、明確に定義されたクライアント/サーバー関係があった多くのプロジェクトでRMI(Java 6)を正常に使用しました。以前のプロジェクトで使用していたときに、クライアントとサーバーの両方にデプロイされる明確に定義されたインターフェイスJARを作成し、「-Djava.rmi.server.codebase =...-Djava」を使用してRMIサーバーを起動しました。 .rmi.server.hostname = localhost -Djava.security.policy = ... \ server.policy "
基本的なクラスターを構築するために、RMIを使用して双方向通信を実行しようとしています。具体的には、B(ワーカー「クライアント」)をA(中央「サーバー」)に登録してほしい。ただし、Bにjava.rmi.Remoteインターフェースを実装し、自分自身の参照をAに戻すようにします。これの主な動機は次のとおりです。* Aは、Bのすべてのインスタンスがどこにあるかを知る必要はありません(インターネット上のどこでも、必要に応じて!)* BのインスタンスがAに登録されると、AはBを制御できます(つまり、Aの裁量でBに対してタスクを実行します)。
私の問題は、このリモートインターフェイス(B)をパラメータとしてAに戻そうとすると、Bで次の例外が発生することです(ただし、代わりにnullを渡すと、リモート呼び出しが正常に発生するため、この説明はありそうにありません:http ://download.oracle.com/javase/1.4.2/docs/guide/rmi/codebase.html#section6):
ここで、* A(実装)= com.mycompany.server.dao.ServerInterfaceImpl * B = com.mycompany.worker.MyWorker
(Q1)私が説明していることを行うことは可能ですか?誰かが私が説明しているものの超基本バージョンを書くことができますか(つまり、クライアントBはサーバーAに登録し、AがBを制御できるようにBのリモートインターフェイスへの参照をAに渡します)?私は当初、いくつかのあいまいなタイプミス/構成の問題があると思っていましたが、このタスクを開始することはできません...
(Q2)私がやろうとしていることが不可能な場合、別のアイデアは、Bの各インスタンスをRMIサーバーに変え、BがAに接続した後にAをBに接続させることです。私が望まない主な理由これを行うには、Aと(の各インスタンス)Bがインターネットによって分離され、Aのみがパブリックインターネットアドレスを持っていると予想します(Bの各インスタンスはパブリックIPアドレスを持たず、さまざまな背後にスタックする可能性があります)ファイアウォール。BがAに接続するのはその逆よりも簡単です)...結局のところ、BがAに接続したら、双方向通信を促進したいだけです。
(Q3)AとBの間にハートビートを設定することを検討していました。1つの可能性として、各Bにこれらのハートビートを使用して、未処理の作業でAをポーリングすることが考えられます。
terminology - 2 つの単方向接続は双方向ですか?
2 種類の「接続」について話し合ったところです。サーバーとクライアントがあるとしましょう。両方が互いのサーバーとクライアントである場合、これは双方向ですか?
同じセッション/同じケーブル/同じものを使用しないため、2 つの単方向接続は 1 つの双方向接続とは多少異なるという印象を受けました。
そのような違いがある/ないことを説明するより一般的な方法はありますか?
PS: 検索すると、データベース ディスカッションが表示されました。
PPS: どうにか一方向性はタグとして利用できません。十分な評判を持つ誰かがそれを作成できますか?
java - 双方向の ManyToMany を両側から更新する
質問を参照する双方向のManyToManyを保存する私は、受け入れられた答えが間違っていると説明したものを正確に取得したい:
この状態が持続する可能性がある場合、結合テーブルに次のエントリが作成されます。
しかし、ロード時に、 a1 ではなく a2 についてのみ b に通知するつもりだったことを JPA はどのようにして知るのでしょうか? b について知ってはならない a2 はどうですか?
私の場合、すべての状況で b が a1 と a2 について知っていることは正しいです。
親子関係を考える:
- b は a1 の親であり、かつ a1 は b の子です (当然)
私にとって、方向を 1 つだけ定義するのは誤りです。
- b は a1 の親であり、かつ a1 は b の子ではありません (???)
受け入れられた答えが説明しているものを取得するには、2つの結合テーブルが必要だと思います:
私が間違っている??
- ただし、「同期された」双方向の関係 (ManyToMany だけでなく) を取得する方法は?
- 標準のJPA機能で可能ですか?
- それ以外の場合、特定のプロバイダーの実装はありますか?
実装していると思います
本当に醜いハックです...
両側で2つの単方向OneToManyを使用しても、EclipseLink 2.2.0では機能しません(よくわかりません、現在試しています)
どうも :)
hibernate - OneToMany双方向マッピングのHibernateおよびH2「参照整合性制約違反」
つまり、FatKid と Hamburgers という 2 つの単純な Bean があります。さて、理由はわかりませんが、誰かが食べたすべてのハンバーガーだけでなく、誰がどのハンバーガーを食べたかを調べられるようにする必要があります。コードに!
FatKid.java
ハンバーガー.java
hibernate.cfg.xml
依存関係
クライアント
したがって、コードを実行すると、最終的に出力 (および切り捨てられたスタック トレース) が表示されます。
したがって、最初のハンバーガーは保存されますが、2 番目のハンバーガーは爆破されます。どちらも FatKid の ID を外部キーとして使用できるはずですが、機能していないようです。どんな洞察も大歓迎です。
ありがとう、ケビン
hibernate - サブクラスとスーパークラス間の双方向の OneToMany アソシエーションが機能しない (JPA と Hibernate 3.6.7)
Employee と Manager の 2 つのクラスがあります。Manager は従業員の一種であるため、Employee を拡張します。Employee には Manager のインスタンスがあり、従業員には 1 人のマネージャがいるという考えを表しています。逆に、manager には一連の Employees があります。EMPLOYEE と MANAGER の 2 つのテーブルがあります。
クラスは次のようになります。
Employee.java (簡潔にするためにセッターとゲッターは省略):
Manager.java
私は数人の従業員でテーブルを埋めましたが、1 人の従業員 (マネージャーである従業員) を除いて、それらの従業員はすべて同じマネージャーを持っています。彼自身にはマネージャーはいません。(あなたが私を正しくフォローしている場合、manageridとしてnullを持つEMPLOYEEテーブルの行を参照するEMPLOYEEIDを使用して、managerテーブルに1行あることが明らかなはずです)。
したがって、このセットアップは私には正しいように見えましたが、すべての Employee オブジェクトを次のようにクエリしようとしたとき:
厄介なスタック トレースが表示されます。
原因: org.hibernate.PropertyAccessException: org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:151) で hata.staff.entity.Employee.manager のリフレクション セッターによってフィールド値を設定できませんでした。 hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586) org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:231) org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister. java:3824) で org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:153) で org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:898) で org.hibernate.loader.Loader.doQuery(Loader) .java:773) org.hibernate.loader.Loader で。doQueryAndInitializeNonLazyCollections(Loader.java:270) org.hibernate.loader.Loader.doList(Loader.java:2294) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172) org.hibernate.loader.Loader .list(Loader.java:2167) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448) org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) org. hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) で ... 108 以上2172) org.hibernate.loader.Loader.list(Loader.java:2167) で org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448) で org.hibernate.hql.ast.QueryTranslatorImpl.list (QueryTranslatorImpl.java:363) の org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) の org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) の org.hibernate.impl. QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 詳細2172) org.hibernate.loader.Loader.list(Loader.java:2167) で org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448) で org.hibernate.hql.ast.QueryTranslatorImpl.list (QueryTranslatorImpl.java:363) の org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) の org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) の org.hibernate.impl. QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 詳細java:1258) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 詳細java:1258) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 詳細 原因: java.lang.IllegalArgumentException: sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java: 164) で sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) で sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) で java.lang.reflect.Field.set(Field.java:680) でorg.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:139) ... 124 詳細
私はこれを間違ってコーディングしましたか、それとも休止状態でこのシナリオを処理できませんか? 助けていただければ幸いです。
java - EJB サーバー側から EJB クライアント側にイベントを送信できますか?
これらの行に沿って何かをすることが可能かどうか疑問に思います:
1) サーバー側 (EJB クラス)
2) クライアント側
A) Java EE 仕様にこれを許可するものはありますか?
B) JBoss がある種の双方向通信を許可していることは知っていますが、その例のようにできますか?
C) OpenEJB (または TOMEE) にこのようなものはありますか?
java - Java: 暗号化されたサーバー/クライアントの双方向通信?
サーバーと複数のクライアント間で暗号化された双方向通信を確立する最良の方法は何ですか?
サーバーには永続データベースがあり、クライアントにデータを送信し、クライアントはデータを送り返します。これは、ネットワーク スニッフィング ツールなどから最適に保護するために暗号化する必要があります。
Netty サーバーはこれに適した候補でしょうか? netty およびクライアント アプリケーションでソケットを使用してサーバーに接続できますか?
ありがとうございました。