Java 使用jsf处理多个CRUD的最佳策略
在我的公司,我们正在使用java和jsf开发一个类似ERP的应用程序,到目前为止,设计团队已经确定了大约20个实体,每个实体具有不同的属性,通常我们将构建20页的CRUD,有没有更好的方法呢?我们使用hibernate作为db访问,因此我们提出了为系统的这一部分使用单个DAO的想法,你有没有遇到过类似的情况?你有什么想法? < P>你可以考虑生成这20个屏幕,就像Ruby中的脚手架一样。就DAO而言,您可能会将CUD操作拉到一些通用的IBusinessObjectDao,将特定的R操作(通过各种参数查询)留给具体的DAO实现。您确实应该研究Seam。它有一个名为的特性,可以从数据库中对整个应用程序CRUD页面进行反向工程。您可以编辑Seam Gen模板(基于Freemarker)以自定义将生成的页面Java 使用jsf处理多个CRUD的最佳策略,java,hibernate,jsf,crud,Java,Hibernate,Jsf,Crud,在我的公司,我们正在使用java和jsf开发一个类似ERP的应用程序,到目前为止,设计团队已经确定了大约20个实体,每个实体具有不同的属性,通常我们将构建20页的CRUD,有没有更好的方法呢?我们使用hibernate作为db访问,因此我们提出了为系统的这一部分使用单个DAO的想法,你有没有遇到过类似的情况?你有什么想法? < P>你可以考虑生成这20个屏幕,就像Ruby中的脚手架一样。就DAO而言,您可能会将CUD操作拉到一些通用的IBusinessObjectDao,将特定的R操作(通过各种
我使用Eclipse插件对数据库建模并生成DDL。然后我运行Seam Gen,几秒钟后您就有了一个正在运行的应用程序。这是一个非常方便的组合。我知道时间很晚了,但我认为我的小框架非常适合这种情况。退房它具有开箱即用的搜索、识别实体数据类型的自定义组件、惰性数据模型以及代码生成器无法提供的灵活性。下面是一个带有惰性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>