• sping data jpa 如何注入的entitymanager


    public class JpaRepositoryFactoryBean<T extends JpaRepository<S, ID>, S, ID extends Serializable> extends
    		TransactionalRepositoryFactoryBeanSupport<T, S, ID> {
    
    	private EntityManager entityManager;
    
    	/**
    	 * The {@link EntityManager} to be used.
    	 * 
    	 * @param entityManager the entityManager to set
    	 */
    	@PersistenceContext
    	public void setEntityManager(EntityManager entityManager) {
    
    		this.entityManager = entityManager;
    	}
    


    可以看到entityManager是通过PersistenceContext注解获取的。

    2.如果要是希望在spring环境中使用@PersistenceContext和@PersistenceUnit,则在application.xml中配置

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
    

    特别注意的是 :如果你在application.xml中配置过context:annotation-config" 或者 "context:component-scan tag,则会默认register一个默认的PersistenceAnnotationBeanPostProcessor。所以如果你要是希望自定义PersistenceAnnotationBeanPostProcessor。则Remove or turn off the default annotation configuration,具体怎么操作,正在研究,不好意思

    可以通过这个类指定多个"persistenceUnits"

     <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
       <property name="persistenceUnits">
         <map/gt;
           <entry key="unit1" value="persistence/unit1"/>
           <entry key="unit2" value="persistence/unit2"/>
         </map/gt;
       </property>
     </bean>
    

     也可以指定多个persistenceContexts

     <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
       <property name="persistenceContexts">
         <map/gt;
           <entry key="unit1" value="persistence/context1"/>
           <entry key="unit2" value="persistence/context2"/>
         </map/gt;
       </property>
     </bean>
    
  • 相关阅读:
    事件处理
    模板语法
    计算属性和侦听器
    Class 与 Style绑定
    Springboot使用redis
    修改docker-toolbox/boot2docker容器镜像
    docker容器如何安装vim
    Maven+Docker,发布到Registry
    Maven + Docker
    Jenkins-SVN + Maven + Docker
  • 原文地址:https://www.cnblogs.com/beiyeren/p/2870856.html
Copyright © 2020-2023  润新知