1

在我的公司,我们正在使用 java 和 jsf 开发一个类似 ERP 的应用程序,到目前为止,设计团队已经确定了大约 20 个实体,每个实体都有不同的属性,通常我们会构建 20 页的 CRUD,有没有更好的方法来做这个?,我们使用hibernate作为数据库访问,所以我们想出了一个单一的DAO系统的这一部分的想法,你遇到过类似的情况吗?你对此有什么想法?

4

3 回答 3

2

你真的应该看看Seam。它有一个名为Seam-Gen的功能,可以从数据库中对整个应用程序的 CRUD 页面进行逆向工程。您可以编辑 Seam-Gen 模板(基于 Freemarker)来自定义将根据您的喜好生成的页面。

我使用 Eclipse 插件Azzurri Clay为我的数据库建模并生成 DDL。然后我运行 Seam-Gen,几秒钟后你就有了一个正在运行的应用程序。这是一个非常方便的组合。

于 2009-02-18T10:51:43.170 回答
0

您可能会考虑代码生成这 20 个屏幕,就像 Ruby 中的脚手架一样。就 DAO 而言,您可以将 CUD 操作拉到一些通用的 IBusinessObjectDao 中,将特定的 R 操作(通过各种参数查询)留给具体的 DAO 实现。

于 2009-01-29T16:24:07.070 回答
0

我知道为时已晚,但我认为我的小框架非常适合这种情况。查看http://code.google.com/p/happyfacescud/。它具有开箱即用的搜索、识别实体数据类型的自定义组件、惰性数据模型以及代码生成器无法提供的灵活性。这是带有惰性数据表和搜索的页面的小示例:

    <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 回答