События Spring & Hibernate EJB - PullRequest
       19

События Spring & Hibernate EJB

1 голос
/ 03 ноября 2008

Можно ли определить подпружиненный слушатель EJB3 Hibernate?

У меня есть это определение в моем persistence.xml :

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

Но я бы хотел управлять HibernateAuditInterceptor и HibernateAuditTrailEventListener с помощью пружины, поэтому я могу сделать несколько инъекций bean-компонентов (например: bean-объект сессионной области) в этих классах. Это возможно?

Ответы [ 2 ]

3 голосов
/ 17 июня 2010
0 голосов
/ 04 ноября 2008

Проблема в том, что эти свойства являются просто строками. Даже если вы определите свой SessionFactory как bean-компонент Spring, любые свойства, которые вы передаете ему через установщик hibernateProperties, являются просто строками:

<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>

Так что я не думаю, что вы можете сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...