Jpa

6 respostas
L

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:

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();

	}

}

gostaria de saber aonde estou errando

6 Respostas

Hebert_Coelho

Declare no seu persistence.xml a classe.

L

Mas meu persistente ta dessa forma:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">

	<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>
</persistence>
Hebert_Coelho

Declare no seu persistence.xml a classe.

utilize a tag

L

Não to entendendo como se faz, poderia mostrar por favor?

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.

&lt;persistence-unit name="default" transaction-type="JTA"&gt;
		&lt;provider&gt;org.eclipse.persistence.jpa.PersistenceProvider&lt;/provider&gt;
		&lt;jta-data-source&gt;jdbc/gerenciadorDiscos&lt;/jta-data-source&gt;
		&lt;exclude-unlisted-classes&gt;false&lt;/exclude-unlisted-classes&gt;
		&lt;properties&gt;
			&lt;property name="eclipselink.jdbc.native-sql" value="false"/&gt;
			&lt;property name="eclipselink.jdbc.cache-statements" value="true"/&gt;
		&lt;/properties&gt;
	&lt;/persistence-unit&gt;
Hebert_Coelho

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.

&lt;persistence-unit name="default" transaction-type="JTA"&gt; &lt;provider&gt;org.eclipse.persistence.jpa.PersistenceProvider&lt;/provider&gt; &lt;jta-data-source&gt;jdbc/gerenciadorDiscos&lt;/jta-data-source&gt; &lt;exclude-unlisted-classes&gt;false&lt;/exclude-unlisted-classes&gt; &lt;properties&gt; &lt;property name="eclipselink.jdbc.native-sql" value="false"/&gt; &lt;property name="eclipselink.jdbc.cache-statements" value="true"/&gt; &lt;/properties&gt; &lt;/persistence-unit&gt;

Se ele estiver usando JavaSE isso não funciona, que é o caso dele.

Criado 28 de fevereiro de 2013
Ultima resposta 4 de mar. de 2013
Respostas 6
Participantes 3