Beispiel: Einfache Container Managed Entity Bean


Beispiel für eine einzelne Container Managed Entity Bean, auf die per Webclient zugegriffen wird.

Aufbau des Beispieles


Mittels einer Entity Bean werden Objekte vom Typ "Kuchen" abgebildet. Ein Kuchen besteht nur aus der Property "Name".

Bestandteile:
a) Entity-Bean-Klasse mit Remote-Interfaces.
b) Application Client.


Deploy der Entity Bean "Kuchen"

Schritt 1: Einstellungen siehe Screenshot.
Entity Bean (Schritt 1)
Schritt 2: Bean-Klasse sowie die Remote-Interfaces auswählen.
Entity Bean (Schritt 2)
Schritt 3: Auswählen der persistenten Datenbankfelder.
Das Feld "Name" soll vom Container verwaltet werden. Der Primary Key wird vom Container erzeugt.
Entity Bean (Schritt 3)
Schritt 3a: Von Schritt 3 aus Deklarieren der Finder.
Diese einfache Anwendung enthält nur eine "findAll"-Methode ohne weitere WHERE-Bedingungen. Die Query sieht so aus:
Select Object (k) from KuchenSingle k order by k.name
Wichtig hierbei: Der "Abstract Schema Name" aus Schritt 3 muss genau so in der Finder-Methode verwendet werden.
Entity Bean (Finder)

Nachbearbeitung:
Nach dem Anlegen der Bean MÜSSEN die Datenbankfeld-Informationen erzeugt werden. Dazu die Bean auswählen und in der TabPage "General" in die "Sun Specific Settings" gehen.
Entity Bean (Database Mappings 1)
In dem Dialog "Create Database Mappings" belassen wir alles im Default und klicken auf OK.
Entity Bean (Database Mappings 2)
Die Datenbankfelder werden automatisch erzeugt:
Entity Bean (Database Mappings 3)

Deploy des Application Clients

Schritt 1: Hinzufügen eines ApplicationClients sowie Remote Interface und Remote Home der Bean. Zu beachten: da die GUI mit JBuilder designt wurde, entstehen zusätzliche Klassen, die Event-Handler kapseln.
Deploy des Application Clients
Schritt 2: Die Main Class ist com.knauf.ejb.kuchen.KuchenApplicationClient.

Nachbearbeitung:
Folgende EJB-Referenz hinzufügen:
"ejb/Kuchen" referenziert "com.knauf.ejb.kuchen.KuchenHome" und "com.knauf.ejb.kuchen.Kuchen".
Application Client (EJB-Referenzen)

Erzeugte Datenbanktabelle

Im Pointbase-Tool sieht die erzeugte Datenbanktabelle so aus:
Datenbank
Man erkennt das vom Container automatisch erzeugte Primary Key-Feld. Der Grund für den Namen der Spalte "NAME" ("NAME9") bleibt mir allerdings rätselhaft.