Spring + JPA - 2 persistence units

Uso Spring e JPA e injeto o EntityManager:

@PersistenceContext private EntityManager entityManager;

Se quiser ter outra PU,basta indicar o nome no @PersistenceContext?

@PersistenceContext(name="em1")
	private EntityManager entityManager1

@PersistenceContext(name="em2")
	private EntityManager entityManager2

Consegui mapear as 2 persistence units,mas como faço para quando criar uma entidade,indicar a qual banco a respectiva tabela pertence?

dentro do persistence.xml vc pode colocar as classes para aquela unidade

sua classe.

de cara me lembro dessa forma, se tem outra forma nao sei.

Olá Léo,na verdade o meu problema é o seguinte:

Criei 2 entityManagerFactory e 2 persistence units no applicationContext:

<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceXmlLocation" value="classpath:META-INF/persistence1.xml" />
		<property name="dataSource" ref="myDataSource" />
		<property name="persistenceUnitName" value="myPU" />
	</bean>

	<bean id="entityManagerFactory1"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceXmlLocation" value="classpath:META-INF/persistence2.xml" />
		<property name="dataSource" ref="myDataSource2" />
		<property name="persistenceUnitName" value="sql" />
	</bean>

<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="org.postgresql.Driver" />
		<property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/cemaris" />
		<property name="user" value="xx" />
		<property name="password" value="xxx" />
	</bean>

	<bean id="myDataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="net.sourceforge.jtds.jdbc.Driver" />
		<property name="jdbcUrl" value="jdbc:jtds:sqlserver://banco:1433/dbgsuas" />
		<property name="user" value="xxxx" />
		<property name="password" value="xxxxx" />
	</bean>

Aqui está o problema:como definir 2 datasouce e 2 EMF?

<bean id="mySessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="myDataSource" />
</bean>

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

cria outra declaracao de bean mudando o datasource e entitymanagerfactory e na tua aplicação tu escolhe qual usar, ja tentou isso?

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

Obs: nunca trabalhei com spring, so li algo sobre, por isso nao sei se é boa pratica.