Hallo,
ich beschäftige mich seit kurzem wieder mit DAOs und bin im Zuge dessen häufiger auf die Begriffe "session-per-request", "Open session in view" etc. gestoßen. Ich nutze übrigens JSF zu Entwicklung meiner Webanwendungen. session-per-request verstehe ich so, dass in einem Servlet-Filter (der meist HibernateFilter heisst) vor
die Transaktion beginne und danach commite. Manchmal habe ich im Servlet-Filter dann auch noch im finally ein
gesehen. Für jeden Request wird also eine Transaktion gestartet, diese commitet und die Session geschlossen - richtig?
Dann hab ich auch noch von Open Session in View gelesen (u.a. hier https://www.hibernate.org/43.html). Doch der Code dazu sieht für mich genauso aus wie der Code zu session-per-request. Habe ich da was session-per-request falsch verstanden oder wo sind genau die Unterschiede?
Im übrigen bin ich auch auf der Hibernate Seite auf "session-per-operation" als Anti-pattern gestoßen. Allerdings konnte ich nichts richtiges dazu finden, also was sich konkret dahinter verbirgt. Möchte ja zumindest wissen, was es ist damit ich es nicht mache.
Bin auch ziemlich verwirrt. Auf manchen Seiten steht: Nutzt open session in view, das ist toll! Auf anderen steht dann: Open session in view sollte man nur bei komplexen Applikationen nutzen. Andere empfehlen dann wieder session-per-request. Mich würde eure Meinung dazu interessieren. Ist das Pattern: Mache Filter, öffne dort session + transaktion, dann kommt doFilter und danach commite ich und schließe (bzw. falls exception auftritt mach ich nen roleback) nun sinnvoll oder nicht und wo sind die Probleme dabei?
Danke für jede Antwort.
ich beschäftige mich seit kurzem wieder mit DAOs und bin im Zuge dessen häufiger auf die Begriffe "session-per-request", "Open session in view" etc. gestoßen. Ich nutze übrigens JSF zu Entwicklung meiner Webanwendungen. session-per-request verstehe ich so, dass in einem Servlet-Filter (der meist HibernateFilter heisst) vor
Code:
chain.doFilter(request, response);
Code:
session.close()
Dann hab ich auch noch von Open Session in View gelesen (u.a. hier https://www.hibernate.org/43.html). Doch der Code dazu sieht für mich genauso aus wie der Code zu session-per-request. Habe ich da was session-per-request falsch verstanden oder wo sind genau die Unterschiede?
Im übrigen bin ich auch auf der Hibernate Seite auf "session-per-operation" als Anti-pattern gestoßen. Allerdings konnte ich nichts richtiges dazu finden, also was sich konkret dahinter verbirgt. Möchte ja zumindest wissen, was es ist damit ich es nicht mache.
Bin auch ziemlich verwirrt. Auf manchen Seiten steht: Nutzt open session in view, das ist toll! Auf anderen steht dann: Open session in view sollte man nur bei komplexen Applikationen nutzen. Andere empfehlen dann wieder session-per-request. Mich würde eure Meinung dazu interessieren. Ist das Pattern: Mache Filter, öffne dort session + transaktion, dann kommt doFilter und danach commite ich und schließe (bzw. falls exception auftritt mach ich nen roleback) nun sinnvoll oder nicht und wo sind die Probleme dabei?
Danke für jede Antwort.