我想覆盖PersistenceAnnotationBeanPostProcessor,它会在我插入context:component-scan标签后立即注册.
我尝试注册一个具有相同名称的bean,但spring仍然注册了原始的后处理器bean.
我的目标是提供一个覆盖版本的findDefaultEntityManager方法,这将使我在同一个容器中声明两个EntityManagers.
注意:我在Spring 2.5.6上运行了2个EM上下文,但在迁移到3.0.5.RELEASE版本时它被破坏了.
小智 6
我发现这个解决方法对我有用(Spring 3.2.7):
<bean id="org.springframework.context.annotation.internalPersistenceAnnotationProcessor"
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" >
<property name="defaultPersistenceUnitName" value="entityManagerFactory"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
这将覆盖Spring加载的默认PersistenceAnnotationBeanPostProcessor,并使用defaultPersistenceUnitName创建一个新的.您必须使用自动加载此bean时使用的bean名称Spring(这是默认行为).我不得不查看org.springframework.context.annotation.AnnotationConfigUtils.registerAnnotationConfigProcessors()来找出这个名字.
为什么不使用你的/注释unitName的属性?由于PersistenceAnnotationBeanPostProcessor 的 javaDoc说它受支持......@PersistenceUnit@PersistenceContext
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |