Auf Thema antworten

Hallo,


ich möchte einen Listener in der SessionFactory registrieren, der dann wieder über ein DAO in DB schreibt.


<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" p:dataSource-ref="dataSource" p:configLocation="classpath:hibernate.cfg.xml">

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">${hibernate.dialect}</prop>

                <prop key="hibernate.use_outer_join">true</prop>

                <prop key="hibernate.jdbc.batch_size">20</prop>

                <prop key="hibernate.max_fetch_depth">3</prop>

               

                <prop key="hibernate.show_sql">false</prop>

                <prop key="hibernate.format_sql">false</prop>

               

                <prop key="hibernate.generate_statistics">false</prop>

                <prop key="hibernate.cache.use_structured_entries">false</prop>

                <!--  Statistics stats = sessionFactory.getStatistics() -->

            </props>

        </property>

       

         <property name="eventListeners">

            <map>

                <entry>

                    <key><value>save-update</value></key>

                    <ref bean="changeListener"/>

                </entry>

            </map>

        </property>

    </bean>

 

 <!--   Änderungen von Objekten speichern -->

    <bean id="changeListener" class="xxx.hibernate.listener.ObjectChangeListenerImpl">

         <!-- --> <property name="changeDao" ref="changeDao" /> 

    </bean>

    <bean id="changeDao" class="xxx.hibernate.ChangeDaoImpl">

        <property name="sessionFactory" ref="sessionFactory" />

    </bean>


Also, die SessionFactory hat den Listener, der Listener das Dao, und die Dao benötigt die SessionFactory..


Bekomme das mit folgendem Fehler quittiert:


Error creating bean with name 'sessionFactory': FactoryBean which is currently in creation returned null from getObject


Wie kann ich das lösen?


Gruß



Oben