Bom dia, recentemente iniciei meus estudos sobre hibernate, e estou tentando fazer um código de inserção no BD, mas por algum motivo ele não está inserindo. É minha primeira postagem aqui então peço desculpas se tiver algo errado.
Segue abaixo os códigos:
pom.xml
4.0.0
<groupId>pos-java-maven-hibernate</groupId>
<artifactId>pos-java-maven-hibernate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>pos-java-maven-hibernate</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.15.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.15.Final</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<class>model.UsuarioPessoa</class>
<properties>
<!-- DADOS DE CONEXAO -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/posjavahibernate" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
HibernateUtil.java
package posjavamavenhibernate;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class HibernateUtil {
public static EntityManagerFactory factory = null;
static {
init();
}
private static void init() {
try {
if (factory == null) {
factory = Persistence.createEntityManagerFactory("pos-java-maven-hibernate");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static EntityManager geEntityManager() {
return factory.createEntityManager();
}
}
DaoGeneric.java
package dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import org.junit.Test;
import posjavamavenhibernate.HibernateUtil;
public class DaoGeneric {
private EntityManager entityManager = HibernateUtil.geEntityManager();
@Test
public void salvar(E entidade) {
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
entityManager.persist(entidade);
transaction.commit();
}
}
UsuarioPessoa.java
package model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class UsuarioPessoa {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", length = 11, nullable = false)
private Long id;
@Column(name = "nome", length = 16, nullable = false)
private String nome;
@Column(name = "sobrenome", length = 32, nullable = false)
private String sobrenome;
@Column(name = "email", length = 32, nullable = false)
private String email;
@Column(name = "login", length = 16, nullable = false)
private String login;
@Column(name = "senha", length = 16, nullable = false)
private String senha;
@Column(name = "idade", length = 3, nullable = false)
private int idade;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
TesteHibernate.java
package posjavamavenhibernate;
import org.junit.Test;
import dao.DaoGeneric;
import model.UsuarioPessoa;
public class TesteHibernate {
@Test
public void testeHibernateUtil() {
DaoGeneric<UsuarioPessoa> daoGeneric = new DaoGeneric<UsuarioPessoa>();
UsuarioPessoa pessoa = new UsuarioPessoa();
pessoa.setNome("Mateus");
pessoa.setSobrenome("Luiz");
pessoa.setEmail("mateus.luiz@gmail.com");
pessoa.setIdade(18);
pessoa.setLogin("mateus.luiz");
pessoa.setSenha("123");
daoGeneric.salvar(pessoa);
//HibernateUtil.geEntityManager();
}
}
Quando eu tento executar com o BD vazio ele cria a tabela, mas não insere, e quando eu tenho executar com alguma coluna nova ele não atualiza…
