Mas como ficaria o persistence.xml, por exemplo, com duas ou mais PersistencesUnits?
E qual Annotation devo utilizar nas minhas entidades pra indicar a qual PU ela pertence? Pergunto isso pq seria essencial caso eu permitisse a geração automatica de entidades no bd ao subir minha aplicação pro servidor.
Me corrijam se eu estiver incorreto, mas farei um exemplo com o que acredito que seja.
Supondo que tenha o seguinte persistence.xml:
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="MEU_PU1">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/BD1</jta-data-source>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="use_sql_comments" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
</properties>
</persistence-unit>
<persistence-unit name="MEU_PU2">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/BD2</jta-data-source>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="use_sql_comments" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
</properties>
</persistence-unit>
</persistence>
Está correto?!
E supondo que eu queria um EntityManager especifico pra um Persistence Unit, deveria chama-lo assim:
@PersistenceContext(unitName="MEU_PU2")
EntityManager em;
// ou assim:
@PersistenceContext(unitName="MEU_PU1")
EntityManager em;
Isso está correto?!
Desculpem-me postar assim, mas estou sem tempo pra fazer testes hoje, assim que tiver os farei.
Ainda tenho duvida de qual anotação usar nas entidades, pra especificar pra qual PU elas pertencem.
Pelas minhas pesquisas aqui encontrei essa:
@PersistenceUnit(unitName="MEU_PU1")
Isso tudo que coloquei aqui foram suposições com base no que conheço e que encontrei com o auto-complete do netbeans.
A princípio me parecem corretas, mas sem um teste e sem uma bibliografia confiavel não sei dizer se estão corretas, alguém saberia me indicar?
Abraços!