كيف يمكنني تكوين النقابة EntityListener عن طريق ملف التكوين الربيع XML؟
سؤال
ولقد اثنين من webapps، التي تم إنشاؤها معا وعلى التوالي توفير وصول العميل والمشرف على قاعدة البيانات.
وأود أن تسجل اثنين EntityListeners JPA لفئة معينة، واحدة في كل التطبيق. للقيام بذلك، وأنا أحاول أن تجد وسيلة لتسجيل المستمعين عبر ملف التكوين الربيع XML أن تكوين سياق JPA كل التطبيق ... وعادل لا يمكن العثور على أي شكل من الأشكال.
وقد أي شخص فعلت شيئا من هذا القبيل؟
وهنا هو جزء من ملف التكوين XML:
<bean id="tempEntityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="tempDataSource" p:persistenceUnitName="tempJpa" >
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:database="ORACLE"
p:databasePlatform="org.hibernate.dialect.Oracle9iDialect"
p:showSql="false" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">validate</prop>
</props>
</property>
</bean>
واعتقدت أن كان هناك وسيلة لتسجيل المستمع حول هذه العناصر، خصوصا JPAProperties، لأنه يبدو أن المكان المناسب لوضع عناصر التكوين JPA ...
ووالمواصفات النقابة تتحدث عن عناصر كيان المستمعين XML، ولكن لا أستطيع أن أجد وسيلة لضخها في العناصر المتاحة الربيع ...
وأنا جديدة إلى حد ما إلى الربيع، ولذا فإنني قد يكون قد أساء فهم شيء ... شكرا لمساعدتكم!
المحلول
وأعتقد أن ما كنت تبحث عن شيء مثل هذا (ناهيك عن المستمعين الفعلي في هذا المثال):
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!-- other configuration cut out -->
<property name="jpaProperties">
<props>
<!-- for hibernate envers -->
<prop key="hibernate.ejb.event.post-insert">
org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.post-update">
org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.post-delete">
org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.pre-collection-update">org.hibernate.envers.event.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.pre-collection-remove">org.hibernate.envers.event.AuditEventListener
</prop>
<prop key="hibernate.ejb.event.post-collection-recreate">org.hibernate.envers.event.AuditEventListener
</prop>
</props>
</property>
</bean>