Beispiel: Einfache Container Managed Entity Bean


Beispiel für eine einzelne Container Managed Entity Bean, auf die per Application Client 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.


Quellcode

Da wir hier mit einem ApplicationClient arbeiten und keine Webkomponenten benötigen können wir ein Standard-Java-Projekt verwenden.
Hier gibt es den Code als Export (siehe Anleitung zum Importieren eines Java Projects) KuchenExport.zip.
Hier steckt die EAR-Datei des Deploytools: Kuchen.ear


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 KuchenSingleBean 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 "Visual Edit 1.1.0.1" für Eclipse 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/KuchenSingle" referenziert "com.knauf.ejb.kuchen.KuchenSingleHome" und "com.knauf.ejb.kuchen.KuchenSingle".
Application Client (EJB-Referenzen)

Deploy/Start

Vor dem Deploy muss die Pointbase-Datenbank gestartet sein damit die Tabelle erzeugt werden kann.
Hier gibt es eine Batch-Datei für das Starten des Application Clients: KuchenClient.bat


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.



Version 1.0.0.1, Stand 01.11.2005
Historie:
1.0.0.0 (10.10.2005): Erstellt
1.0.0.1 (01.11.2005): Klasse "KuchenFrame" in "FrameKuchen" umbenannt, die Main-Methode aus "FrameKuchen" entfernt.