3 Stimmen

Öffnet OpensessionInViewInterceptor/Filter, um mehrere SessionFactories zu handhaben

Wir entwickeln eine Multi-Tenant-Anwendung mit einem separaten Schema pro Mandant.

Wir verwenden ein SessionFactory pro Schema, was ohne die Verwendung von OpenSessionInViewFilter gut funktioniert.

Wir möchten den Spring TransactionManager zusammen mit OpenSessionInViewFilter verwenden.

Wir konnten einige Referenzen finden, um OpenSessionInViewFilter anzupassen, um mit mehreren SessionFactories umzugehen (durch Überschreiben der Methode lookupSessionFactory), aber es funktioniert nicht für uns, da wir diesen Filter von unseren DAOs aus referenzieren müssen.

Daher haben wir geplant, OpenSessionInViewInterceptor zu verwenden, auf den von anderen Spring-Beans (DAOs) zugegriffen werden kann, aber wir finden keinen Weg, es anzupassen, um nach SessionFactory basierend auf der TenantId zu suchen.

Wir verwenden Hibernate 3.2.5 und Spring-2.5.6

0voto

m.kaluzny Punkte 19

Um Zugriff auf den Filter in DAO zu erhalten, können Sie Ihren Filter als Bean definieren und DelegatingFilterProxy verwenden, um diese Bean als Filter zu registrieren:

Bean-Definition:

web.xml Teil:

  openEntityManagerInViewFilter
  org.springframework.web.filter.DelegatingFilterProxy

  openEntityManagerInViewFilter
  /

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X