Design-Pattern und EJB Frage
-
Guten morgen!
Man sollte aus Performancegründen nach Möglichkeit den Zugriff auf EntityBeans über SessionBeans kontrollieren. Diese SessionBeans sollten dann idealerweise nur Value/-Transferobjects zurück liefern.
Soweit kein Problem. Nun gibt es das Problem, dass man häufig wiederkehrende interne Abfragen und Funktionen in eine eigene Methode auslagern möchte. Diese Methode sollte dann auch das LocalObject der Entity zurückliefern. Wie kann man das elegant lösen, denn der Client(Local oder Remote) soll dieses Methode gar nicht zu sehen bekommen. Der Client soll ja nur Zugriff auf die ValueObjects haben.
Eine Möglichkeit wäre: zwei verschiedene SessionBeans anzulegen. Eine z.B. FooBarInternalSession und eine FooBarSession, wobei der Client nur auf FooBarSession zugreifen kann. Gibt es bessere elegantere Lösungen?
Zu guter letzt noch eine kurze Frage: Wodurch erreichen EJB-Container diese Performance? Cachen die einfach die häufig abgefragte Objekte? Denn die Performance gerade im Datenbankzugriff ist gegenüber purem JDBC deutlich höher. Das würde für mich auch den enormen Speicherverbrauch erklären.
Vielen Dank im voraus!