0

I am trying to configure the multiple JPA repositories in my web application. Currently I have one Repository as mentioned below. I am using Crud Repository

<jpa:repositories base-package="com.mypackage1" factory-class="org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory">
    <repository:include-filter type="assignable" expression="com.MyFirstRepository"/>
</jpa:repositories>

<bean id="entityManagerFactory"
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.mypackage1.Model" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="true" />
            <property name="database" value="H2" />
        </bean>
    </property>
</bean> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

<bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:database/~test" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>     

If I need to configure multiple repositories,

<bean id="entityManagerFactory2"
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource2" />
    <property name="packagesToScan" value="com.mypackage2.Model" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="true" />
            <property name="database" value="H2" />
        </bean>
    </property>
</bean> 

<bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory2" />
</bean>

<bean id="dataSource2"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:database/~test2" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>     

I am not able to find any appropriate configuratiuon for this.

Appreciate help on this.

Patan
  • 17,073
  • 36
  • 124
  • 198
  • Not an answer using XML config, but perhaps the following might help in understanding what you need to configure? http://stackoverflow.com/questions/15008809/multiple-jparepositories-in-xml-config-how-to-configure-with-enablejpareposit/19976132#19976132 – Steve Sep 29 '14 at 10:18
  • @Steve. Thanks for Response. I have found this https://github.com/spring-projects/spring-data-jpa/blob/master/src/test/resources/multiple-entity-manager-integration-context.xml. Can you check – Patan Sep 29 '14 at 10:49
  • 1
    That looks like the right kind of thing. Generally you need to ensure that names of data sources and entity managers don't clash. I can't remember whether it was just a Java Config issue, but I also found that I needed to put the repos in separate packages. – Steve Sep 29 '14 at 11:22

0 Answers0