Hallo,
ich arbeite gerade an einer JSF 2.0 Anwendung. Jetzt bin ich gerade am Überlegen, wie ich die Schichten am besten aufbaue. Ich habe mir das wie folgt vorgestellt:
Präsentationsschicht -> wird von *.xhtml JSF Seite verwendet (@Named, @SessionScoped,...).
Serviceschicht -> Wird von der Präsentationsschicht aufgerufen (@Inject oder @EJB) und besitzt die Geschäftslogik.
Datenschicht -> DAO (JPA, EntityManager, Entitäten).
Jetzt zu meiner Frage:
Muss eigentlich noch ein DAO für die Datenzugriffsschicht geschrieben werden, denn der EntityManager kann mit @PersistenceContext direkt in der Serviceschicht injiziert werden und die Transaktionen werden vom EE Container gehandelt.
Müssen die Entiäten bis zur Präsentationsschicht hochgereicht werden (Problem: LazyInitializationException) oder sollte die Serviceschicht doch lieber DTO's für die Präsentationsschicht liefern.
Danke für eure Hilfe.
Gruß
ich arbeite gerade an einer JSF 2.0 Anwendung. Jetzt bin ich gerade am Überlegen, wie ich die Schichten am besten aufbaue. Ich habe mir das wie folgt vorgestellt:
Präsentationsschicht -> wird von *.xhtml JSF Seite verwendet (@Named, @SessionScoped,...).
Serviceschicht -> Wird von der Präsentationsschicht aufgerufen (@Inject oder @EJB) und besitzt die Geschäftslogik.
Datenschicht -> DAO (JPA, EntityManager, Entitäten).
Jetzt zu meiner Frage:
Muss eigentlich noch ein DAO für die Datenzugriffsschicht geschrieben werden, denn der EntityManager kann mit @PersistenceContext direkt in der Serviceschicht injiziert werden und die Transaktionen werden vom EE Container gehandelt.
Müssen die Entiäten bis zur Präsentationsschicht hochgereicht werden (Problem: LazyInitializationException) oder sollte die Serviceschicht doch lieber DTO's für die Präsentationsschicht liefern.
Danke für eure Hilfe.
Gruß