1

私の会社では、Java と jsf を使用して ERP のようなアプリを開発しています。これまでのところ、設計チームは、それぞれが異なるプロパティを持つ約 20 のエンティティを特定しました。通常、CRUD の 20 ページを構築します。より良い方法はありますか?これは?、db アクセスとして hibernate を使用しているため、システムのこの部分に対して単一の DAO のアイデアを思いつきましたが、同様の状況に直面したことがありますか? それについてどう思いますか?

4

3 に答える 3

2

あなたは本当に Seam を調べる必要があります。データベースからアプリケーション CRUD ページ全体をリバース エンジニアリングするSeam-Genと呼ばれる機能があります。Seam-Gen テンプレート (Freemarker に基づく) を編集して、生成されるページを好みに合わせてカスタマイズできます。

Eclipse プラグインAzzurri Clayを使用してデータベースをモデル化し、DDL を生成します。次に Seam-Gen を実行すると、数秒でアプリケーションが実行されます。とても便利な組み合わせです。

于 2009-02-18T10:51:43.170 に答える
0

遅いことはわかっていますが、私の小さなフレームワークはこの状況に完全に適合すると思います。http://code.google.com/p/happyfacescrud/をご覧ください。すぐに使える検索、エンティティのデータ型を認識するカスタム コンポーネント、遅延データモデル、およびコード ジェネレーターでは提供できない柔軟性を備えています。これは、遅延データテーブルと検索を含むページがどのように見えるかの小さなサンプルです。

    <hf:searchPanel columns="4" backingBean="#{accountBean}">
        <hf:searchField label="#{messages['account.accountNumber']}" field="accountNumber" />
        <hf:searchField label="#{messages['account.active']}" field="active" isMessage="true" />
        <hf:searchEntityField label="#{messages['account.customer']}" field="customer" childField="name" popup="true" />
        <hf:searchField label="#{messages['account.openingDate']}" field="openingDate" rangeSearch="false" />
    </hf:searchPanel>
    <hf:dataList label="#{messages['account.search.results']}" backingBean="#{accountBean}">
        <hf:column label="#{messages['account.accountNumber']}" field="accountNumber" />
        <hf:column label="#{messages['account.active']}" field="active" isMessage="true" />
        <hf:column label="#{messages['account.customer']}" field="customer" childField="name" entityView="/pages/customerEdit.xhtml" popupFields="email,phone,address" />
        <hf:column label="#{messages['account.openingDate']}" field="openingDate" isDate="true" />
        <hf:actionsColumn />
    </hf:dataList>
于 2012-11-05T18:58:33.750 に答える
0

Ruby のスキャフォールディングと同じように、20 個の画面をコード生成することを検討してください。DAO に関する限り、特定の R 操作 (さまざまなパラメーターによるクエリ) を具体的な DAO 実装に任せて、CUD 操作をいくつかの汎用 IBusinessObjectDao にプルすることができます。

于 2009-01-29T16:24:07.070 に答える