//TestaInsereProduto.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import entities.Produto;
public class TestaInsereProduto {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("lojavirtual");
System.out.println("1");
EntityManager em = factory.createEntityManager();
Produto p = new Produto();
p.setNome("camiseta");
p.setPreco(12.23);
em.getTransaction().begin();
em.persist(p);
em.getTransaction().commit();
}
}
Gera esse erro aqui:
[color=red]Exception in thread “main” java.lang.NoClassDefFoundError: org/hibernate/MappingNotFoundException
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at testes.TestaInsereProduto.main(TestaInsereProduto.java:14)
Caused by: java.lang.ClassNotFoundException: org.hibernate.MappingNotFoundException
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)
… 4 more[/color]
Olha pelo que eu vi,ta faltando a porta no endereço do banco,a sua linha atualmente no persistence.xml está assim:
tente assim:
3306 é a porta padrão,se estiver usando outra porta,substitua pela porta certa.
Olha,eu n mapeio minhas entidades no persistence.xml não,me refiro a essa linha:
Eu faço da seguinte forma,vou até as propriedades no projeto dentro do eclipse(só clicar no projeto e depois alt+enter),depois disso vc clica em Java Persistence ou JPA,depois marque a opção Discover annotated classes automatically,mas para que você veja o menu Java Persistence,é necessário ir antes em Project Facets e marcar o checkbox do JPA,dessa forma vc pode retirar as linhas de mapeamento de Entidade do arquivo persistence.xml
Abraço!
[quote=AlencarCanton]seu persistence.xml está no diretório src/META-INF ?
Poste o nome de todos os jars que estão no seu projeto,pode estar faltando alguma dependência.[/quote]
Além disso,vc tá usando o tomcat,ele não faz o controle das transações pra vc(não provê transação automática),então coloque o valor “RESOURCE_LOCAL” para a propriedade “transaction-type” na persistence unit.
Dessa forma:
Pô cara valeu mesmo aí a força mas ainda não deu certo :\ Mas tipo antes ele não estava nem indo para a main agora tá fazendo o primeiro print que coloquei pra testar mas não chega no segundo está parando nessa linha aqui:
Ah cara agora que estou percebendo que fiz uma certa confusão no começo do post, deu a entender que a aplicação era web, mas não, é um simples desktop mesmo o persistence.xml está no src/META-INF sim, mas não existe WEB-INF na hierarquia de diretórios.
Wellington,procure outro tutorial e reescreva seu persistence.xml todo,ok?
se não der certo,poste aqui de novo o erro e vamos tentar outra estratégia.
abraço!