問題タブ [apache-cayenne]

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 に答える
172 参照

apache-cayenne - Apache Cayenne で複数列の一意の制約を定義するにはどうすればよいですか?

正規化されたデータベース モデルの設計ではよくあることですが、Apache Cayenne でモデリング UI を介して定義できる、テーブルの自動生成された主キー制約に加えて、複数列の一意の制約を定義したいと考えています。特定の列または列のグループが特定のテーブルに対して一意である必要があることを Cayenne に伝えることはできますか?

EG-次のapp_userように定義されたテーブル (postgresql 構文):

id列は一意である必要があります。

考えられる唯一の方法は、追加の制約を定義するためにデータベースが作成された後に実行する必要がある後処理スクリプトを作成することですが、Cayenne を介したより良い方法があることを願っています。何か不足していますか?

これは、この件に関して私が見つけることができた唯一の関連する議論です: http://markmail.org/message/euetcwcn73tfd45o

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

jquery - カイエン式への HashMap

オリジナルのカイエン エクスプレッションを持っています

私のコードベースには、上記の式を HashMap に変換する util メソッドがあります。マップを走査して JSON 形式に変換し、その JSON を jquery QueryBuilder にフィードします。UIレイヤーでJSONを変更し、Jacksonを使用してJSONをHashMapに取得します HashMap sysoutは以下のとおりです

HashMap をトラバースして、それを Cayenne Expression に変換する必要があります。

最終結果は

コードを入力してください

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

java - Apache Cayenne ROP: クライアント接続がタイムアウトしたことを検出する方法はありますか?

Apache Cayenne Remote Object Persistence フレームワークを使用してデータにアクセスして保存するリッチ クライアント アプリケーションがあります。これまでのところ、接続タイムアウトを検出して処理する適切な方法を見つけることができませんでした。MissingSessionExceptionセッションがタイムアウトした後にアクションが試行されると、クライアントとサーバーの両方でAがスローされますが、クライアント側ではこの例外がキャッチされ、呼び出し元に伝播することなくスタックトレースがコンソールに出力されます。

ユーザーに再接続を促すことができるように、接続が切断されたことを検出する簡単な方法はありますか?

ObjectContext関連して、接続を再確立できる場合、使用中の既存のクライアントオブジェクトはどうなりますか? PersistentObjectそれらのコンテキストで以前に作成されたコミットされていないは永久に失われますか?

編集: これは、 Apache Cayenne ROP サーバーの「リクエストに関連付けられたセッションがありません」と同じ問題ではありません。Tomcat 7 で

Edit2: 私が考えることができる唯一の (ハッキーな) 解決策は、キープアライブ スレッドを実際に実行して、低遅延のクエリを Cayenne に定期的に送信し、ROP セッションをアクティブに保ち、アプリケーション アクティビティを個別に追跡し、ユーザーにパスワードの入力を促すことです。一定時間活動が無かった場合。このようなアプローチで私が目にする問題は、アクティビティが見逃される可能性がある多くの方法があること、アプリケーションが実際にはタイムアウトしていないこと、およびセッションがタイムアウトする必要があるという根本的な問題に実際に対処していないことです。理由。

Edit3: この質問も Cayenne ユーザー リストに送信しました。ディスカッションはこちらでご覧いただけます

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

apache-cayenne - Cayenne Expression.fromString は括弧の順序を維持していません

私は文字列を持っています

式に変換した後、括弧の順序が維持されていません

これにより、

論理的には同じ意味かもしれませんが、適切なグループ化を維持するために括弧の順序を維持したいと思います。

式に変換した後、括弧の順序を維持する方法はありますか

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

java - 方法: PostgreSQL の json および jsonb データ型を使用した Java オブジェクト マッピング

Apache Cayenne を使用して、json および jsonb データ型を持つ PostgreSQL スキーマにマップしようとしました。Apache Cayenne モデラーにはデータ型がなく、「OTHER」に変更されました。SQL を実行してデータベースを再作成すると (最大限の互換性のために必要)、エラーがスローされました。

次に、DataNucleus など、PostgreSQL の json および jsonb データ型にマップする代替手段を探してみましたが、Java ドライバーが PostgreSQL 9.x をサポートしていないことがわかりました。(したがって、DataNucleus JPO は PostgreSQL の json および jsonb タイプをサポートしていないと思います。)

では、PostgreSQL の json および jsonb にマップし、Java ベースのアプリケーションのデータ書き込み/取得と相互運用するためのソリューションは何ですか?

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

java - Cayenne 4.0 + PostgreSQL 9.4 で PK 生成を管理する方法

私は持っている:

  • PostgreSQL 9.4
  • アパッチ カイエン 4.0.M3
  • 1 つの最も単純なテーブル「proba」で構成されるスキーマ:

    CREATE TABLE proba (id bigint NOT NULL, 値の文字が変化する(255), CONSTRAINT proba_pkey PRIMARY KEY (id) )

  • シンプルな Main メソッド:

    /li>
  • シンプルな cayenne-project.xml:

    /li>
  • シンプルな datamap.map.xml (手作り):

    /li>

試してみると、次の出力が得られました。

そのため、カイエンは pk_proba という名前のシーケンスを期待しています。なんで?生成するつもりはありませんでした。私のスキーマでも、Cayenne マッピングでも、postgresql シーケンスについて言及しませんでした。

だから、私は2つの質問があります:

  • コミット時に特定のエンティティに対して ID が提供されない場合、Cayenne が ID を生成しようとする試みを抑制し、Cayenne を高速で失敗させるにはどうすればよいですか?
  • 私のプロジェクトで Cayenne が PK 自動生成を管理する方法をカスタマイズできますか?