Wie kann ich das Hibernate Configuration-Objekt von Spring erhalten?

Ich versuche zu erhalten, Feder-definiert Hibernate-Konfiguration und SessionFactory Objekte in meiner non-Spring code. Das folgende ist die definition in meinen applicationContext.xml Datei:

Code:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="hibernateProperties">
    <props>
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
      <prop key="hibernate.show_sql">true</prop>
      <prop key="hibernate.hbm2ddl.auto">update</prop>
      <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
      <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
    </props>
   </property>
   <property name="dataSource">
    <ref bean="dataSource"/>
   </property>
    </bean>

Wenn ich jetzt call getBean("sessionFactory"), bin ich zurückgekehrt: $Proxy0 Objekt, das scheint zu sein, ein proxy für die Hibernate-SessionFactory-Objekt. Aber das ist nicht das, was ich will - ich brauche das LocalSessionFactoryBean selbst, denn ich brauche den Zugriff auf die Konfiguration der SessionFactory.

Dem Grund brauche ich das Configuration-Objekt ist, dass unser framework ist in der Lage zu verwenden, Hibernate dynamischen Modell automatisch einfügen-mappings zur Laufzeit; dies erfordert, dass wir die Konfiguration ändern und neu erstellen die SessionFactory. Wirklich, alles, was wir versuchen zu tun ist, erhalten die Hibernate-config, das bereits im Frühjahr, so dass diejenigen unserer Kunden, die bereits Informationen im Frühjahr brauchen nicht zu duplizieren Sie es in einen hibernate.cfg.xml -Datei um unsere Hibernate-features.

Kommentar zu dem Problem
Und wie kann man den Wiederaufbau der sessionFactory? Und wie stellen Sie sicher, dass alle vorhandenen Transaktionen abgeschlossen haben, bevor Sie zu zerstören? Kommentarautor: banterCZ

InformationsquelleAutor der Frage Wayne Russell | 2010-04-29

Schreibe einen Kommentar