Hoje tenho duas base de dados, em cada base existe uma tabela chamada participante, porém os atributos dessa tabela não são iguais.
criei duas classe chamada participante, cada uma pertence a um pacote diferente. agora queria saber como faço para definir que cada classe pertence a uma conexão no jpa.
Obrigado a todos desde já!
Você vai precisar definir em seu persistence.xml a classe com a configuração abaixo:[code]<persistence-unit …>
com.uaihebert.EntidadeA
true
<persistence-unit …>
com.uaihebert.EntidadeB
true
[/code]
As classes precisa está com as anotações: @Entity ?
[quote=jjander.cunha]As classes precisa está com as anotações: @Entity ?[/quote]Tem que ser uma Entidade normal.
Alguém pode me ajudar, quando carrego o EntityManager apresenta o erro abaixo:
<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="sikuli-mysql"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.comprev.sisprev.modelo.AcaoComprev</class>
<class>br.com.comprev.sisprev.modelo.Agencia</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.username" value="xxxxx" />
<property name="hibernate.connection.password" value="yyyyy" />
<property name="hibernate.connection.url" value="jdbc:postgresql://xxxxxxx:5432/base1" />
</properties>
</persistence-unit>
<persistence-unit name="conexao_bdc" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.comprev.bdc.modelo.AlocarUsuario</class>
<class>br.com.comprev.bdc.modelo.BloqueioSiape</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.username" value="xxxxx" />
<property name="hibernate.connection.password" value="yyyyy" />
<property name="hibernate.connection.url"
value="jdbc:postgresql://xxxxxxxx:5432/base2" />
</properties>
</persistence-unit>
</persistence>
Erro:
Exception in thread "main" java.lang.ExceptionInInitializerError
at teste.main(teste.java:9)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: conexao_bdc] class or package not found
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1386)
at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1159)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1004)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:282)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:366)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at br.com.comprev.util.JPAUtil.<clinit>(JPAUtil.java:20)
... 1 more
Caused by: java.lang.ClassNotFoundException: br.com.comprev.bdc.modelo.AlocarUsuario
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:170)
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1302)
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1374)
... 9 more
Classe do Erro:
@Entity
@Table(name="alocar_usuario")
@SequenceGenerator(name = "alocar_usuario_codigo_seq", sequenceName = "alocar_usuario_codigo_seq", allocationSize=1, initialValue=1)
public class AlocarUsuario implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "alocar_usuario_codigo_seq", strategy = GenerationType.SEQUENCE)
@Column(columnDefinition="serial")
private long codigo;
@Column(length=50, nullable=false)
private String usuario;
@Column(name="data_mailing",nullable=false)
@Temporal(TemporalType.DATE)
private Date dataMailing;
}
Hebert Coelho, sua orientação deu certo. O erro estava acontecendo decorrente ao nome do pacote que estava digitando errado.