Vraptor + JPA com 2 bancos de dados

Oi, eu sou iniciante em JPA e então a minha dúvida é a seguinte: Eu queria usar 2 persistance units cada um deles ligado a um banco de dados. O que acontece é que embora eu especifique no código os dois persistence units a apontar para base de dados diferentes ele só vai usar uma delas e apenas se o persistence unit name for “default”. Não é possível usar outro nome no persistence unit para além de “default”?

Sim, é possível.

Esse persistence.xml abaixo é utilizado em um projeto Open Source:

[code]<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="QueryTesterHibernate" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	
	<class>com.uaihebert.model.Dog</class>
	<class>com.uaihebert.model.Car</class>
	<class>com.uaihebert.model.Tire</class>
	<class>com.uaihebert.model.House</class>
	<class>com.uaihebert.model.Person</class>
	<class>com.uaihebert.model.Address</class>
	
	<properties>
		<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:hibernate" />
		<property name="javax.persistence.jdbc.user" value="sa" />
		<property name="javax.persistence.jdbc.password" value="" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
		<property name="hibernate.connection.shutdown" value="true" />
		<property name="hibernate.hbm2ddl.auto" value="update" />
		<property name="hibernate.show_sql" value="false" />
		<property name="hibernate.format_sql" value="false" />
	</properties>
</persistence-unit>

<persistence-unit name="QueryTesterOpenJPA"	transaction-type="RESOURCE_LOCAL">
	<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

	<class>com.uaihebert.model.Dog</class>
	<class>com.uaihebert.model.Car</class>
	<class>com.uaihebert.model.Tire</class>
	<class>com.uaihebert.model.House</class>
	<class>com.uaihebert.model.Address</class>
	<class>com.uaihebert.model.Person</class>
	
	<properties>
		<property name="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
		<property name="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:OPenJPA" />
		<property name="openjpa.ConnectionUserName" value="sa" />
		<property name="openjpa.ConnectionPassword" value="" />
		<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=WARN"/>
		<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
		
		<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
		<property name="openjpa.DynamicEnhancementAgent" value="true"/>
		<property name="openejb.validation.output.level" value="verbose" />
	</properties>
</persistence-unit>

<persistence-unit name="QueryTesterEclipseLink"	transaction-type="RESOURCE_LOCAL">
	<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
	
	<class>com.uaihebert.model.Dog</class>
	<class>com.uaihebert.model.Car</class>
	<class>com.uaihebert.model.Tire</class>
	<class>com.uaihebert.model.House</class>
	<class>com.uaihebert.model.Address</class>
	<class>com.uaihebert.model.Person</class>
		
	<properties>
		<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:e" />
		<property name="javax.persistence.jdbc.user" value="sa" />
		<property name="javax.persistence.jdbc.password" value="" />
		<property name="eclipselink.ddl-generation" value="create-tables" />
		<property name="eclipselink.ddl-generation.output-mode"	value="database" />
	</properties>
</persistence-unit>

[/code]Note que tem 3 persistence units declarados.