0

数日前に Serenity を使い始めたのですが、小さな問題が発生しました。

2 つのテーブルのビューで作成されたグリッドがあり、そのグリッドの値をそれらのテーブルに追加したいと考えています。

ビューから直接追加できないことはわかっています。これらの項目をテーブルの適切な場所に追加する関数を作成する必要があります。

これはスキーマの例です:

ここに画像の説明を入力

グリッドが両方のテーブルの列で表示されるように、ビューを作成しました。

これはグリッドの例です:

ここに画像の説明を入力

Serenity は、アプリを非常に迅速に構築したい場合には優れたツールですが、生成されたコード内の何かを変更したい場合にはあまりユーザーフレンドリーではありません。

StackOverflow からいくつかの関数を追加しようとしましたが、プログラムの機能全体が変更され、このタイプの要求は 1 回しか使用されません。デフォルトの create 関数を変更することはできません。残りのテーブルでは、この関数は役に立たないからです。

誰かが Serenity を使用しようとしていて、アイデアがある場合は、この問題を解決できるようにヒントを提供してください。

ありがとう!

4

2 に答える 2

1

静けさは素晴らしく、彼に感謝します。このスレッドにたどり着くかもしれない人はあきらめないでください。現在のドキュメントを確認してください。フォローしてくださっている方の参考になるポイントをまとめました。パフォーマンスを向上させるために使用したい、外部キーとストアド プロシージャを備えた適切なデータベースがありました。また、プロシージャに結合された複数のテーブルを日常的に含む、使用したいオブジェクトを表すプロシージャにモデル クラスをマップしました。

Serenity には、結合されたテーブルの列がエンティティ行クラスには含まれていましたが、列クラスには含まれていませんでした。行クラス プロパティには、削除した Expression タグが関連付けられていました。この目的のために外部キー宣言を使用しているという著者からのコメントを見たと思います。

私の場合、列クラスにプロパティを追加できました。

エンドポイント クラスでは、proc の結果をドメイン オブジェクトに取得してから、行クラス インスタンスのリストを作成し、そのリストをメソッドの戻りオブジェクトに追加しました。

このプロセスにより、適切に設定されたグリッド オブジェクトが作成されました。

最初にこれがどのように機能するかを知っていれば、行クラス オブジェクトのリストを直接設定したほうがよいでしょう。

お役に立てれば。

于 2016-10-29T17:03:54.120 に答える
0

Serenity では、一度に 2 つのテーブルを更新できます。Customer ダイアログには、このサンプルもあります。下部には、顧客の詳細が別のテーブルから一覧表示され、更新されます。

Mark Ewer が述べているのとは異なり、Serenity は UI やテーブルについて仮定を立てません。私は非常に多くの異なるレガシー アプリケーションとデータベースで Serenity を使用しているため、あらゆる DB 構造に適応する必要があります。

もちろん、コード ジェネレーターは単純なケースを処理するため、単純なテーブルの UI を生成する方が簡単です。より複雑なケースでは、プラグを挿入する場所を知っておく必要があります。サンプル、ドキュメント、および GitHub の問題の出番です。

于 2016-11-12T19:34:48.060 に答える