Galera, necessito de ajuda com a configuração do JPA 2.0 + Hibernate no Eclipse.
Primeiramente, gostaria de avisar que já revirei este fórum inúmeras vezes, encontrei diversos posts iguais ao meu, porém não conseguir resolver.
1 - Criei uma Biblioteca HIbernate com as libs adicionando ela no projeto.
2 - Driver do MySQL adicionado no projeto.
3 - Criei a pasta META-INF e adicionei o arquivo persistence.xml.
Classes e arquivo de unidade de persistência abaixo:
Segue o erro:
run:
jan 18, 2017 7:28:23 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
jan 18, 2017 7:28:23 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.21.Final}
jan 18, 2017 7:28:23 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
jan 18, 2017 7:28:23 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistence
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at entity.entityFuncionarioDAO.<init>(entityFuncionarioDAO.java:22)
at entity.entityPersistirFuncionario.main(entityPersistirFuncionario.java:20)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
persistence.xml:
<?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="persistence" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistence</provider>
<class>entity.entityFuncionario</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/fj21"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.password" value="gabe@@123"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="false"/>
<property name="hibernate.use_sql_comments" value="false"/>
</properties>
</persistence-unit>
</persistence>
Classe entityFuncionario:
@Entity(name="funcionario")
public class entityFuncionario {
@Id @GeneratedValue
private int id;
@Column(length=40)
private String nome;
@Column(length=10)
private int idade;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
Classe entityFuncionarioDAO:
public class entityFuncionarioDAO implements Serializable {
EntityManager em;
EntityManagerFactory emf;
public entityFuncionarioDAO(){
emf = Persistence.createEntityManagerFactory("persistence");
em = emf.createEntityManager();
}
public void salvar(entityFuncionario f){
em.getTransaction().begin();
em.merge(f);
em.getTransaction().commit();
emf.close();
}
}
Classe Teste
public class entityPersistirFuncionario {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
entityFuncionarioDAO fDAO = new entityFuncionarioDAO();
entityFuncionario f = new entityFuncionario();
f.setNome("Gabriel Melo Costa");
f.setIdade(20);
fDAO.salvar(f);
}catch(Exception ex){
ex.printStackTrace();
}
}
}