Frage

In meinem Unternehmen entwickeln wir eine ERP-ähnliche App mit Java und JSF. Bisher hat das Designteam etwa 20 Entitäten identifiziert, jede mit unterschiedlichen Eigenschaften. Normalerweise erstellen wir 20 Seiten CRUD. Gibt es eine bessere Möglichkeit? Das? Wir verwenden den Ruhezustand als Datenbankzugriff, also kamen wir auf die Idee eines einzelnen DAO für diesen Teil des Systems. Sind Sie mit einer ähnlichen Situation konfrontiert?Was denkst du darüber?

War es hilfreich?

Lösung

Sie können diese 20 Bildschirme in Betracht ziehen, ähnlich wie das Gerüst in Ruby. In Bezug auf DAO können Sie CUD -Operationen an einige generische IbusinessObjectdao ziehen und spezifische R -Operationen (Abfrage nach verschiedenen Parametern) für konkrete DAO -Implementierungen überlassen.

Andere Tipps

Sie sollten sich wirklich Seam ansehen.Es gibt eine Funktion namens Naht-Gen Dadurch werden Ihre gesamten Anwendungs-CRUD-Seiten aus der Datenbank zurückentwickelt.Sie können die Seam-Gen-Vorlagen (die auf Freemarker basieren) bearbeiten, um die generierten Seiten nach Ihren Wünschen anzupassen.

Ich verwende das Eclipse-Plugin Azzurri-Ton um meine Datenbank zu modellieren und die DDL zu generieren.Ich führe dann Seam-Gen aus und in wenigen Sekunden haben Sie eine laufende Anwendung.Es ist eine sehr praktische Kombination.

Ich weiß, dass es spät ist, aber ich denke, mein kleiner Rahmen würde diese Situation perfekt passen. Kasse http://code.google.com/p/happyfacescrud/ . Es wurde nach einem Feld gesucht, benutzerdefinierte Komponenten, die den Datentyp von Entity, Lazy Datamodel und Flexibilität erkennen, die Codegeneratoren nicht anbieten können. Hier ist ein wenig Beispiel, wie Seite mit faulen DataTable und Suche so aussehen würde:

    <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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top