Olá a todos! Estou iniciando no JAVA e estou tentando fazer uma aplicação básica, um CRUD usando JSF e Hibernate.
Já segui alguns tutoriais, mas não consegui terminar… Tenho uma dúvida sobre o funcionamento:
Depois de começar um projeto com JSF + Facelets, para inserir o Hibernate nele baixei o Hibernate Core, Annotation, e Entity Manager, e inseri as bibliotecas que vieram. Depois criei um arquivo persistence.xml(código logo abaixo). Preciso fazer mais alguma coisa?
Vou colocar os códigos que estou usando para facilitar o entendimento de quem puder ajudar.
Model:
package model;
import javax.persistence.Entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table( name = "pessoa" )
public class Pessoa implements Serializable{
@Id
@GeneratedValue
@Column( name = "id" )
private Integer id;
@Column( name = "nome" )
private String nome;
@Column( name = "idade" )
private Integer idade;
@Column( name = "sexo" )
private char sexo;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public char getSexo() {
return sexo;
}
public void setSexo(char sexo) {
this.sexo = sexo;
}
}
Código do Save:
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "BancoPU" );
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
em.persist( pessoa );
tx.commit();
em.close();
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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="BancoPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/banco"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
</properties>
</persistence-unit>
</persistence>
O erro está acontecendo na linha do EntityManager, quando vou salvar, e não consigo entender porque…
Se estiver confuso pode falar que tento explicar melhor.
Se alguém puder ajudar, fico agradecido.
Abraço