Gente começei a estudar JPA e como so iniciante ainda to com uma dificuldade, eu to com o seguinte problema: a minha classe quando vou roda-la aparece aquela mensagem chata: Erro: Não foi possível localizar nem carregar a classe principal br.com.toyota.modelo.PersistidorDeAutomovel
A minha classe é a seguinte:
[code]package br.com.toyota.modelo;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class PersistidorDeAutomovel {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("default");
EntityManager em = emf.createEntityManager();
Automovel auto = new Automovel();
auto.setMarca("Toyota");
auto.setModelo("Corolla");
auto.setAnoFabricacao(2013);
auto.setObservacoes("2.0 Completo");
EntityTransaction tx = em.getTransaction();
tx.begin();
em.persist(auto);
tx.commit();
em.close();
emf.close();
}
}[/code]
gostaria de saber aonde estou errando
Declare no seu persistence.xml a classe.
Mas meu persistente ta dessa forma:
[code]<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="default">
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/automoveis" />
<property name="javax.persistence.jdbc.password" value="senha" />
<property name="javax.persistence.jdbc.username" value="login" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
[/code]
Declare no seu persistence.xml a classe.
utilize a tag
Não to entendendo como se faz, poderia mostrar por favor?
Tu pode colocar a linha <exclude-unlisted-classes>false</exclude-unlisted-classes> com isso todas as classes anotadas com @Entity são lidas automaticamente. Segue exemplo do arquivo que estou usando aqui.
<persistence-unit name="default" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/gerenciadorDiscos</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.jdbc.native-sql" value="false"/>
<property name="eclipselink.jdbc.cache-statements" value="true"/>
</properties>
</persistence-unit>
[quote=russocorp]Tu pode colocar a linha <exclude-unlisted-classes>false</exclude-unlisted-classes> com isso todas as classes anotadas com @Entity são lidas automaticamente. Segue exemplo do arquivo que estou usando aqui.
<persistence-unit name="default" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/gerenciadorDiscos</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.jdbc.native-sql" value="false"/>
<property name="eclipselink.jdbc.cache-statements" value="true"/>
</properties>
</persistence-unit>
[/quote]Se ele estiver usando JavaSE isso não funciona, que é o caso dele.