Frage

Ich habe einen SEAM-App mit einigen JPA / Hibernate Entitäten. Und ich frage mich jetzt, wo meine Frage, Persistenzmethoden setzen.

Die Standardauswahl scheint sie in einer Session-Bean-Schicht zu setzen mit injizierte

@PersistenceContext(...) @Inject EntityManager entityManager;

Aber ich glaube, ich würde lieber die Methoden auf den Entitäten selbst. Was sind die Profis / Kontra?

  1. Testablity?
  2. Nettigkeit?
  3. Performance?

Und wer hat Links zu Best Practices für die mit den EntityManager der Interaktion usw. von Methoden auf den Entitäten anstatte Session Beans?

Best, Anders

War es hilfreich?

Lösung

Ich habe keine Erfahrung mit SEAM, aber aus meiner Erfahrung mit Java-Projekten, fand ich es am einfachsten, Bohnen zu halten von persistieren Methoden. Was wir normalerweise tun:

  • Haben Sie Bohnen für Business-Objekte (wie "User" und "Einstellungen" zum Beispiel)
  • Haben Sie eine DAO-Schicht, die bestehen bleiben und abrufen können diese Bohnen (einfache CRUD)
  • Haben Sie einen Service Layer, die nows wie die Bohnen zu handhaben, und vielleicht sogar wie ein Aggregat von Bohnen zu bauen

Auf diese Weise ist alles ziemlich getrennt und ist einfach zu Unittest. Die Leistung ist in der Regel kein Problem mit dieser Einstellung.

Andere Tipps

Ja, das ist auch das, was ich vorher gemacht habe.

Generell denke ich, ist EJB irrsinnig ausführlich und boilerplate'y, aber SEAM tatsächlich hilft ein wenig, so dass ist, warum in meinem aktuellen Projekt, die zusätzliche Schicht von Session Beans nur abzufragen und zu beharren ärgert mich. Ich habe das Gefühl, dass ich eine einigermaßen präzise app machen könnte, wenn ich diese Schicht töten könnte ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top