2008-11-03 6 views
1

Est-il possible de définir un écouteur d'hibernation EJB3 géré par un ressort?Spring & Hibernate Evénements EJB

J'ai cette définition dans mon persistence.xml:

<properties> 
    <property name="hibernate.ejb.interceptor" 
     value="my.class.HibernateAuditInterceptor" /> 
    <property name="hibernate.ejb.event.post-update" 
     value="my.class.HibernateAuditTrailEventListener" /> 
</properties> 

Mais je voudrais gérer HibernateAuditInterceptor et HibernateAuditTrailEventListener avec le printemps, donc je peux faire une injection de haricot (ex: haricots scope session) dans ces classes. Est-ce possible?

Répondre

0

Le problème est que ces propriétés sont juste des chaînes. Même si vous définissez votre SessionFactory comme un grain de printemps, toutes les propriétés que vous passez à travers le poseur hibernateProperties ne sont que des chaînes:

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="dataSource"ref="myDataSource"/> 
    <property name="mappingResources"> 
     <list> 
      <value>whatever.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <value> 
      hibernate.ejb.interceptor= my.class.HibernateAuditInterceptor 
     </value> 
     <value> 
      hibernate.ejb.event.post-update=my.class.HibernateAuditTrailEventListener 
     </value> 
    </property> 
</bean> 

Je ne pense pas que vous pouvez le faire.

+0

SessionFactory Hibernate accepte un auditeur lors de l'ouverture des sessions. Je suis sûr que cela peut être fait avec Spring gérer à la fois l'usine de session et l'auditeur; mon problème est avec JPA. –

Questions connexes