問題タブ [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 に答える
193 参照

java - Apache Cayenne は、多対多の関係に重みを加えます

みんな。

私は自分のプロジェクトで apache cayenne を使用しています。解決できない問題が発生しました。

エンジニア テーブルとスキル テーブルがあります。エンジニアは多くのスキルを持つことができ、スキルは多くのエンジニアに属することができるため、多対多の関係です。エンジニアとスキルの関係表を作成し、この 3 つの表をカイエンの「平坦化関係」で結びました。これまでのところすべて問題ありません。

ここで問題なのですが、「エンジニアがどれだけスキルを習得しているか」を表現するという要件がありました。関係に「重み」を加えるようなもので、エンジニア・スキル・関係表が最適な場所になると思いますが、どうすればよいでしょうか。

モデラーで?私は何も助けを見つけませんでした。

データベースの設計についてよく知らないので、テーブルの設計を調整することでこの問題を解決する方法がいくつかあるのではないでしょうか?

どんなアイデアでも大歓迎です。

ありがとう。

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

apache - 同じテーブル内の Apache Cayenne 1-M の関係

要素または着陸スペースを他の着陸スペースにドラッグできるシステムを構築しています。そのため、モデルはリーフに要素を持つランディング スペースのツリーになります。

このデータを保存するために apache cayenne を使用したいと考えています。理想的な状況は、カイエンの「LandingSpace」クラスで LandingSpace.getChildren() を呼び出し、着陸スペースや要素を含む子を取得することです。

基本的に、テーブルからそれ自体への 1-M 関係を作成したいと考えています。これを達成する方法はありますか?

どうもありがとう

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

mysql - 外部キー制約が失敗する 失敗する - Apache Cayenne

私のデータベースは、apache cayenne を使用して構成された次の SQL を使用しています。

ただし、要素テーブルに要素が存在し、プロジェクトを削除しようとすると、次のメッセージが表示されます。

外部キーの何が問題になっていますか?

「プロジェクト」の列を表示します。

プロジェクト http://nottsbsa.org/Images/SO5.png

「要素」の列を表示します。

プロジェクト http://nottsbsa.org/Images/SO4.png

現在私のテーブルにあるデータは次のとおりです。

プロジェクト http://nottsbsa.org/Images/SO1.png

要素 http://nottsbsa.org/Images/SO2.png

データベースの目的は、それ自体を参照する要素テーブルを持つことです。そのため、プロジェクトには多くの要素を含めることができ、要素には親要素または多くの子要素を含めることができます。これは Apache Cayenne を使用して構築されていることに注意してください。

どうもありがとう

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

java - Apache Cayenne によるオブジェクトの更新

私は yo'll ole google で 2 時間を費やしましたが、成功しませんでした。

私はmysqlとJava EE(Restletフロント付き)でApache Mavenを使用しています。

ID属性を指定してオブジェクトを取得し、更新してデータベースに保存しようとしています。私はこの答えをここで見ましたが、うまくいきません!

こちらのドキュメントも読みました。

データ横断の順序で、JSON オブジェクトを受け入れ、それをオブジェクトのコンストラクターにフィードし、オブジェクトを構築し、新しいオブジェクト (JSON オブジェクトとは関係ありません) を取得し、ID を指定してデータを入力し、2 つのオブジェクトを結合して保存します。データベースに。

データベースを更新するコードは次のとおりです。

public vehicle(JSONObject json) - 使用されている容器のコンストラクタ

vehicle.update(Vessel v) - これは私が使用している更新方法です

これらのループを使用して変数を格納することの大きなセキュリティ リスクを認識しています。ただし、これにより開発時間が大幅に短縮されます。実際に使用されていない変数を渡すとどうなるかはテストしていませんが、保存されるだけだと思います。いずれにせよ、それは私の質問ではないので、ここで持ち出さないでください (私にメッセージを送ってください!)。

v.setSomething("awesome")呼び出す代わりに実行するとv.update(...)、コードは期待どおりに機能します(上記の回答で最初に見つかりました)。

アイデアはありますか?ヘルプは非常に、非常に、非常に高く評価されています!

編集:(約1時間後)

に変更することで、これを機能させることができました(これまでのところ、テストを終了する必要があります)this.values.put(pairs.getKey().toString(), o);this.writeProperty(pairs.getKey().toString(), o);

検証したらまた報告します…

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

sql - Cayenne - 依存関係の組み合わせを検索

ユーザーがフォームを作成できるようにするアプリケーションを作成しています。フォームは別のユーザーが読み込んで入力し、そのユーザーの送信を表示できます。

フォームにはフィールドが入力されています。ユーザーがフォームに入力すると、Submission データベース オブジェクトが作成され、この送信は FieldValue オブジェクトと 1-M の関係を持ちます。FieldValue オブジェクトには Field への FK があり、ユーザーの入力の String を格納します。この設計を使用して送信を表示するには、送信に関連付けられた FieldValues を読み取り、関連付けられた Field オブジェクトを読み込み、ユーザーの入力を入力します。この意味ではすべてがうまく機能しますが、私の問題はこれらの提出物を探すことです。

私は、検索対象のフォームのフィールドに基づいて検索フィールドを動的に作成する検索ページに取り組んでいます。たとえば、firstName と lastName です。ユーザーが firstName = j lastName = smith で検索するとします。これらの検索フィールドを使用して、FK が firstName に一致し、テキストに「j」が含まれる FieldValue を持ち、FK が lastName に一致し、テキストに「smith」が含まれる DIFFERENT FieldValue を持つすべての送信を検索したい

次のコードのバリエーションを試しています。

私がやろうとしているのは、各検索フィールドをループして、提出物に含まれている必要がある FieldValues のリストに追加することです。これの問題は、これらの値をすべて持つ 1 つの FieldValue を検索し続けるため、明らかに失敗することです。別のクラス内で 1-M になる可能性のある検索を行ったことがないので、ここで何かが欠けていると思います。どんな助けでも大歓迎です。何が起こっているのかを説明しようとする小さな小説で申し訳ありませんが、それは私にとって少し普通ではありません.

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

database - 複数のノードを持つ Cayenne

Cayenne (Remote Object Persistence) でサーバーをセットアップしようとしています。私の場合、同じマップを使用する複数のデータベースがあります。2 つのノードが同じマップを指すことができないため、これを実装する最良の方法は何ですか?

私はそれを行う2つの方法を見つけましたが、それは本当に満足のいくものではありません:

  • データベースごとにドメインを作成し、データベースごとにサーブレットを作成します。動作しますが、新しいデータベースを作成する場合は、web.xml を変更し、Web アプリケーションをリロードする必要があることを意味します。

  • 複数のノードと複数のマップがすべて同じファイルを指している 1 つのドメインを持つこと。最初のマップでのみキャッシュを構築するように EntityResolver をオーバーロードし、正しいマップを指すように SelectQuery をオーバーロードする必要がありました。それが良い方法かどうかはわかりません...

回答とコメントをありがとうございます。