Vererbung in Beans

BLR

Erfahrenes Mitglied
Hallo :)

ich beschäftige mich zur Zeit mit Java EE, worin ich mich frage, wie man bei den Beans (SessionBeans)
mit der Vererbung umgehen soll.
Es sind ja alle Pojo´s, die vom Container verwaltet werden.
Nun habe ich beispielsweise drei Funktionalitäten, die für meine Entity-Beans alle zutreffen:
findAll; find; delete.
Da drängt es sich für mich auf eine abstrakte Klasse zu schreiben, die der jeweiligen Bean die Funktionen zur Verfügung stellt.
Auf der anderen Seite heisst es eben, dass diese Beans unabhängig sein sollten.

Welche Nachteile hat diese Vorgehensweise? (ausser dass man sich nicht an das Paradigma hält)
Müsste ich dann mittels CDI diese abstrakte Klasse als eine normale Klasse handhaben und diese dann in die SessionBeans injezieren (sowie das PersistenzContext z.b....)

Danke für die Tipps.
 
Du mischst drei verschiedene Dinge: Entities, DAOs und Session-Beans.

- Eine Entity sollte ein als solche annotiertes Pojo sein. Sprich, lediglich annotierte Felder und getter- und setter-Methoden anbieten.
- Ein DAO wird verwendet, um Enities zu laden, speichern oder löschen. Das DAO selbst beinhaltet dann idealerweise nur Code, der dafür notwendig ist. Mehr Geschäftslogik sollte im DAO nicht sein. Das DAO kann von einer abstrakten Klasse erben, um Code zum speichern, laden oder löschen gemeinsam verfügbar zu haben. Dabei kann ein DAO ggf. eine Stateless Bean sein, muss aber nicht, wenn man mit einer DAOFactory arbeitet.
- Eine Session-Bean kümmert sich nur um Geschäftscode. Was soll wie mit einander in Zusammenhang stehen (in einem globaleren Kontext gesehen). Beispiel für eine Session-Bean wäre eine Login-Klasse, welche ein DAO verwendet um eine User-Entity zu laden und als Authentifizierungs- und Authorisierungs-Objekt zu verwenden.

Interessantes auch in dem Zusammenhang:

https://www.tutorials.de/threads/rmi-und-hibernate.396588/#post-2048293
https://www.tutorials.de/threads/in...-jsp-dynamisch-erstellen.398740/#post-2058869

Ich kann zu Studien-Zwecken auch gern mein GenericHibernateDAO zur Verfügung stellen, falls gewünscht.
 
Vielen Dank für deine gut struktuierte Beschreibung.
Ich würde mir gerne dein GenericHibernateDAO anschauen :)
 
Zurück