myFaces und Hibernate Session Handling

Status
Nicht offen für weitere Antworten.

y0dA

Top Contributor
Hi!
Was mich schon länger beschäftigt ist wie man am besten das Hibernate Session Thema bei myFaces angeht. Also wie handhabt ihr das Ganze? Bspw mittels einem Filter welche eine Session für die nächste Interaktion aufmacht oder öffnet und schließt ihr die Session vor u nach einer Abfrage (= kein Lazyloading möglich)?

Wäre hilfreich wenn ihr mir hierbein ein paar Tipps geben könntet.

mfg
 

ms

Top Contributor
Sofern auch die Datenbankzugriffe in der selben VM laufen wie der UI-Teil mittels Open-Session-In-View-Filter.
Ansonsten siehe die Problematik ein paar Beiträge weiter unten.

ms
 

SnooP

Top Contributor
Google mal nach Open-Session-In-View - da landest du auf die entsprechende Doku auf den Hibernate-Seiten - die ist ganz aussagekräftig.

Letztlich brauchst du eine HibernateUtil-Klasse, die via ThreadLocal-Variable die Session oder auch die akt. Transaction speichert und die Verbindung aufbaut etc...

In einem Servlet-Filter schließt du die Session wieder nach bzw. bei Auslieferung des Response.
Also Request, Zugriff einer Action auf eine Hibernate-Komponente über HibernateUtil: Session auf... mache ganz viel - Render Response, Fitler macht Session wieder zu.

LazyLoading ist damit passé - weil du bei Webanwendungen den Vorteil eines klar definierten Ablaufs: Request-Response-Zyklus hast.
 

byte

Top Contributor
SnooP hat gesagt.:
Letztlich brauchst du eine HibernateUtil-Klasse, die via ThreadLocal-Variable die Session oder auch die akt. Transaction speichert und die Verbindung aufbaut etc...
Das ist nicht nötig, wenn man die Session per factory.getCurrentSession() holt. Dann kannst Du einfach in der Hibernate.cfg die Session an den Thread binden.
Open-Session-In-View macht dann ja einfach nur eine Transaktion am Anfang des Requests auf und comittet diese nach dem Rendern der View, womit auch die Session geschlossen wird.
 

y0dA

Top Contributor
Und diesen Filter benötige ich wenn ich in der View eine Connection benötige?
Und wenn ihr ganz normal Daten speichert und lädt macht ihr dann einfach an jenen Stellen in der Businesslogik eine Session auf und wieder zu? Mir gehts halt prinzipiell darum dass ich weiß wann ich bzw wie ich dieses Session Thema angehen sollte.
 

ms

Top Contributor
Wenn du Spring verwendest gibt es schon einen solchen Filter von dem du nur noch ableiten brauchst um die SessionFactory zu initialisieren.
Im übrigen muss auch im Filter keine Transaktion geöffnet und geschlossen werden. Das könnte man zB dem Servicelayer überlassen.

@y0dA
Du brauchst dich um das Öffnen/Schließen überhaupt nicht mehr kümmern. Einfach nur HibernateUtil.getCurrentSession() aufrufen und du hast deine Session.

ms
 

byte

Top Contributor
Mein Kommentar bezog sich auf die reine Verwendung von Hibernate. Mit Spring wirds natürlich noch viel schöner.

Ich habe derzeit zwei Projekte mit Spring & Hibernate laufen (eins mit GWT-Frontend und eins mit Swing-Client). In beiden Fällen habe ich jeweils eine Service- und eine DAO-Schicht. Client kommuniziert nur mit Service. Service macht Transaktion auf und benutzt DAOs für DB-Zugriffe. DAOs benutzen HibernateTemplate (Spring) und kriegen darüber ihre Session. Die Session ist an die Transaktion gebunden und wird beim Commit geschlossen. Transaktion und Session sind also nur auf, solange eine Service-Anfrage läuft. Beim nächsten Aufruf gibts ne neue Session.

KA wie Deine Architektur aussieht, aber vielleicht hilfts Dir ja weiter.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Probleme mit Apache MyFaces 2 und ICEFaces Facelets Allgemeines EE 1
0 myfaces staret nicht Allgemeines EE 1
Y myFaces - Security/Login Allgemeines EE 4
Y myfaces 1.2.x 1.1.x vorziehen? Allgemeines EE 4
Y myFaces 1.2 und Tomcat 5.x / 6.0 Allgemeines EE 9
S MyFaces Sandbox: inputSuggest Komponente furnktioniet nicht Allgemeines EE 11
S Frage zu JSF und MyFaces Komponenten: Teilbereiche neu laden Allgemeines EE 2
S Verdammt, MyFaces Sandbox 'läuft' nicht Allgemeines EE 7
M Apache MyFaces Tomahawk Sandbox Allgemeines EE 5
JimPanse Jboss 4.2.0, myfaces bzw. Tomahawk Allgemeines EE 5
S MyFaces - Sandbox wie konfigurieren Allgemeines EE 4
N myfaces - tomahawk verwenden Allgemeines EE 6
J Werteübergabe bei Funktionsaufrufe? (JSP/MyFaces) Allgemeines EE 3
F MyFaces und Tiles: <tiles:insert> wird nicht erkannt Allgemeines EE 10
N MyFaces upload-example Allgemeines EE 2
T JSF/MyFaces und Navigation Allgemeines EE 9
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
O Hibernate Fehlermeldung bei start des Servers Allgemeines EE 2
E Frage zu Wildfly und Hibernate OGM Allgemeines EE 0
S Frage zu Jersey + Hibernate Allgemeines EE 1
D GWT mit Hibernate und Sql Datenbank Allgemeines EE 2
B Wicket, Hibernate, H2 memDB Anfänger Frage Allgemeines EE 2
H Hibernate - OneToMany - mappedBy reference an unknown target entity property Allgemeines EE 1
A Hibernate endlich zu Laufen bekommen... Allgemeines EE 11
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
LadyMilka Ablaufdiagramm mit/ohne Hibernate Allgemeines EE 2
P Mit JAXB erzeugte Klassen persistieren (Hibernate) Allgemeines EE 10
K Anfänger: Hibernate + Web Allgemeines EE 2
T Hibernate 3 + EJB 3 + JBoss 5 Allgemeines EE 6
G Persistenz mit Hibernate oder J2EE? Allgemeines EE 11
C Hibernate - Expression.or Allgemeines EE 4
D Erst Spring oder erst Hibernate lernen? Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
byte Remote Lazy Loading mit Spring und Hibernate Allgemeines EE 5
G JSF, Hibernate, Spring --> Struktur Allgemeines EE 2
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
G JSF | Hibernate | MySQL Allgemeines EE 17
G Hibernate: org.hibernate.TransactionException Allgemeines EE 4
F org.hibernate.LazyInitializationException: failed to lazily Allgemeines EE 8
J nur bestimmte Mapping-Dateien berücksichtigen (Hibernate) Allgemeines EE 14
S Hibernate EJB3 Allgemeines EE 2
E JBoss Hibernate Datenbank-Timeout Allgemeines EE 3
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
2 hibernate - createQuery() Allgemeines EE 9
T Hibernate die richtige Wahl? Allgemeines EE 2
M JSF mit Hibernate Allgemeines EE 14
W Hibernate *.Jar's im Klassenpfad Allgemeines EE 10
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
C EntityManager wirft NullpointerException: JBoss-Hibernate Allgemeines EE 4
E JSF, Hibernate & MySQL: Keine Datenbankaktualisierung Allgemeines EE 5
M mit Hibernate 1:n in view richtige implementieren Allgemeines EE 3
M Hibernate Criteria frage Allgemeines EE 2
A Speicherproblem bei Webanwendung mit Hibernate und Stuts Allgemeines EE 6
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
E JOINS und Hibernate? Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
S Java Enum in MySQL und Hibernate Allgemeines EE 3
R Hibernate: many-to-many funktioniert noch nicht ganz Allgemeines EE 2
D Hibernate hql suche Date Allgemeines EE 9
B JSF + Hibernate How2 Allgemeines EE 2
G [JSF+Hibernate]: DB-Constraints in Validierungsphase? Allgemeines EE 4
P struts Hibernate MySQL Select Statement Allgemeines EE 24
G JTA ja/nein & wie (JBoss & Hibernate & Transakti Allgemeines EE 3
T Hibernate & Logging in Log4J Allgemeines EE 4
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
G Persistenz-Entscheidung (Entity Beans, Hibernate, JDBC) Allgemeines EE 12
S Hibernate 2.x mit Eclipse 2.1 Allgemeines EE 16
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
O JSF / Primefaces Session handling Allgemeines EE 1
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
H Shared Session in Webmodulen Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
F Session zerstören Allgemeines EE 12
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
G Session Allgemeines EE 6
E Session Problem Allgemeines EE 9
G Session neu!? Allgemeines EE 7
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
D Frage zum Statefull Session Beans Lebenszyklus Allgemeines EE 3
MQue Session - Cookie Allgemeines EE 27
MQue Session Exception Allgemeines EE 5
M j_security_check Login und Session-ID Allgemeines EE 2
S Session in eine andere Anwendung übergeben Allgemeines EE 2
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
S tomcat session timeout - und was danach? Allgemeines EE 1
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
G Session Cookies Allgemeines EE 2
Q Session Tracking - Wie macht mans richtig! Allgemeines EE 3
B Session Daten pro User merken Allgemeines EE 9
H [JSP JSF] Session Timeout und Redirekt zur Startseite Allgemeines EE 5
I Session-Attribute von Client zugänglich? Allgemeines EE 6
G session token Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben