私の会社では、Java と jsf を使用して ERP のようなアプリを開発しています。これまでのところ、設計チームは、それぞれが異なるプロパティを持つ約 20 のエンティティを特定しました。通常、CRUD の 20 ページを構築します。より良い方法はありますか?これは?、db アクセスとして hibernate を使用しているため、システムのこの部分に対して単一の DAO のアイデアを思いつきましたが、同様の状況に直面したことがありますか? それについてどう思いますか?
3 に答える
あなたは本当に Seam を調べる必要があります。データベースからアプリケーション CRUD ページ全体をリバース エンジニアリングするSeam-Genと呼ばれる機能があります。Seam-Gen テンプレート (Freemarker に基づく) を編集して、生成されるページを好みに合わせてカスタマイズできます。
Eclipse プラグインAzzurri Clayを使用してデータベースをモデル化し、DDL を生成します。次に Seam-Gen を実行すると、数秒でアプリケーションが実行されます。とても便利な組み合わせです。
遅いことはわかっていますが、私の小さなフレームワークはこの状況に完全に適合すると思います。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>
Ruby のスキャフォールディングと同じように、20 個の画面をコード生成することを検討してください。DAO に関する限り、特定の R 操作 (さまざまなパラメーターによるクエリ) を具体的な DAO 実装に任せて、CUD 操作をいくつかの汎用 IBusinessObjectDao にプルすることができます。