JSFで複数のCRUDへの最善の戦略[閉じました]
質問
私の会社で、私たちはこれまで、設計チームは、約20エンティティ、diferent性質を持つそれぞれを特定した通常我々はCRUDの20ページを作成することがあります、任意のより良いがあり、JavaとJSFを使用してERPのようなアプリを開発していますあなたが似状況に直面している、これを行う方法?我々は、DBアクセスと休止状態を使用しているので、我々は、システムのこの部分のための単一DAOのアイデアを思い付きましたか?その上で、あなたの考えは何ですか?
解決
あなたは多くのRubyはありませんで足場のように、これらの20枚のスクリーンをcodegenerating考えるかもしれません。限りDAOが関係しているとして、あなたは具体的なDAOの実装に(各種パラメータによって照会)特定のR操作を残して、いくつかの一般的なIBusinessObjectDaoにCUD操作を引っ張るかもしれません。
他のヒント
あなたは本当にシームになっているはずです。これはシーム-GENと呼ばれる機能を持っていますデータベースからアプリケーション全体のCRUDページをリバースエンジニアリングしますに。あなたは、あなたの好みに合わせて生成されるページをカスタマイズする(Freemarkerのに基づいています)シーム-GENテンプレートを編集することができます。
私は、Eclipseのプラグインアズーリクレイがの私のデータベースをモデル化し、生成するために使用しますDDL。私はその後、シーム-genを実行し、数秒であなたは、実行中のアプリケーションを持っています。これは非常に便利な組み合わせです。
私はその後半を知っているが、私は私の小さなフレームワークは完全にこのような状況に合うと思います。 http://code.google.com/p/happyfacescrud/ にチェックしてください。これは、箱から出して、コードジェネレータを提供することができないというエンティティ、怠惰なデータモデル、および柔軟性のデータ型を認識カスタムコンポーネントを検索しています。
:ここで怠惰のDataTableと検索のページは次のようになりますどのように小さなサンプルです <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>