EJB 3-Session-Bean-Design für eine Einfache CRUD -
Ich Schreibe eine Anwendung, die Sohle Zweck im Leben ist zu tun CRUD-Operationen für die Aufrechterhaltung der Datensätze in der Datenbank. Es gibt Beziehungen, die zwischen einigen der Tabellen/Entitäten. Die meisten Beispiele, die ich gesehen habe für die Erstellung von session beans beschäftigt sich mit komplexen business-Logik/Operationen, die in Wechselwirkung mit vielen Personen, die ich nicht habe.
Da meine Anwendung ist also sehr einfach, was wäre das beste design für die session-bean(s)?
Dachte ich, dass eine session-bean pro Person hatte die CRUD-Methoden definiert werden. Dann dachte ich an die Kombination all dieser session beans in einer einzigen session-bean. Und dann fand ich diesen blog-Eintrag ist interessant, aber ich muss zugeben, ich verstehe nicht alles (was ist ein ServiceFacade?).
Ich bin Neigung in Richtung session-bean/entity-Klasse, aber würde gerne mehr hören erfahrene Meinungen.
Dank.
Hoppla, hier ist der blog link: http://www.adam-bien.com/roller/abien/entry/generic_crud_service_aka_dao
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, was blog-Eintrag du redest 🙂 Aber in deiner konkreten situation1, würde ich wahrscheinlich verwenden Sie eine einzelne session-bean Implementierung einer Schnittstelle ähnlich:
Und die Bohne wäre wie folgt:
Siehe auch
1 die Meisten Anwendung sollte dem nicht aussetzen raw-CRUD-direkt zum Kunden, sondern Schild CRUD hinter Dienstleistungen, der Implementierung von business-Regeln und Kapselung von Zugriff auf Domain-Läden (die
EntityManager
).shield CRUD behinds services implementing business rules and encapsulate access to EntityManager
. Es scheint, dass Sie nicht Kapseln den Zugriff aufEntityManager
. Wie sollte man das lösen den obigen code zu KapselnEntityManager
. Noch eine Frage, wenn ich versuche, Zugriff auf den EJB-aus meinerManaged Bean
, ich habe zu tun@EJB private GenericCrudService myEJB
statt@EJB private GenericCrudServiceBean myEJB
. Ich dachte, letzteres würde mehr Sinn machen, weilGenericCrudService
ist einfach und die BenutzeroberflächeGenericCrudServiceBean
ist ein stateless bean