Лучшая стратегия для множественного CRUD с помощью jsf [закрыто]

StackOverflow https://stackoverflow.com/questions/492315

  •  20-08-2019
  •  | 
  •  

Вопрос

в моей компании мы разрабатываем ERP-подобное приложение, используя java и jsf, на данный момент команда разработчиков определила около 20 объектов, каждый с различными свойствами, обычно мы создаем 20 страниц CRUD, есть ли лучший способ сделать это?, мы используем hibernate для доступа к БД, поэтому нам пришла в голову идея единого DAO для этой части системы, вы сталкивались с подобной ситуацией?что вы думаете по этому поводу?

Это было полезно?

Решение

Вы могли бы рассмотреть возможность создания кода для этих 20 экранов, подобно тому, как это делают строительные леса в Ruby.Что касается DAO, вы могли бы перенести операции CUD в некоторый общий IBusinessObjectDao, оставив конкретные операции R (запросы по различным параметрам) для конкретных реализаций DAO.

Другие советы

Вам действительно стоит присмотреться к Seam.У него есть функция, называемая Шов-Ген это приведет к обратному проектированию всех CRUD-страниц вашего приложения из базы данных.Вы можете отредактировать шаблоны Seam-Gen (основанные на Freemarker), чтобы настроить страницы, которые будут сгенерированы по вашему вкусу.

Я использую плагин Eclipse Клей Адзурри смоделировать мою базу данных и сгенерировать 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top