Hibernate version: 3.2 Core + Annotations
Mapping documents: Entity Beans / hibernate.cfg.xml
Code between sessionFactory.openSession() and session.close(): Ich nutze keine sessionFactory
Postgres 8.2
________________________
Ich hab meine Anwendung in 3 Teilanwendungen aufgeteilt. Hauptanwendung ist mit Hibernate Einbindung, enthält das komplette Modell in Form der Beans sowie meine Business Logik (Controller).
Desweiteren habe ich 2 Teilprojekte, die beide als View dienen, unabhängig von eineander sind (eine Swing App, eine Struts Webapp), sich gegenseitig nicht kennen, aber beide auf die Hauptapp mit der Business Logik zugreifen und die auf dieses Projekt verweisen.
Mein Problem ist jetzt folgendes:
Ich muß in meinem Controller (der Business Logik) im Hauptprojekt auf Daten zugreifen wie
- angemeldeter User
- ...
Dafür hab ich mir eine Art Applikationsobjekt oder Sessionobjekt erzeugt (KEIN HibernateSession oder ähnliches). Nun gehe ich her und werfe dieses Objekt in Struts einfach immer in die HttpSession, da ich den Request und damit die Session ja von jeder Action aus im Zugriff habe. Im Gegensatz dazu habe ich in der Swing App einfach eine static Klasse draus gemacht, auf die ich auch von überall aus zugreifen kann (in Ermangelung einer Session in Swing). So wie ich das sehe, gibt es nur 3 Möglichkeiten, in der Swing App eine Session nachzubilden:
- in jeder Funktion das SessionObjekt als Parameter mitgeben (overhead, unpraktikabel)
- einen Thread programmieren und den dann im Stacktrace suchen und dort das Objekt rausziehn (Missbrauch?)
- das SessionObjekt statisch machen.
... wie macht mans richtig? Und zwar so, daß ich, egal welche View, den Zugriff auf so ein SessionObjekt immer im Controller (der Business Logik) im Zugriff habe?
|