Olá pessoa, estou começando a sair do java básico e indo para um pouquinho do avançado. Estou com dificuldades em excluir um objeto de banco de dados. Consigo salvar o objeto sem problemas, porém não consigo exclui-lo do banco. Aparece a seguinte informação no final da execução: INFO: HHH000114: Handling transient entity in delete processing. Podem me dar um alerta sobre o possível erro ? grato.
Classe repositório
public class RepositorioUsuario implements IUsuarioRepositorio {
public void salvar(Usuario usuario) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
sessao.save(usuario);
System.out.println("Usuário salvo com sucesso");
transacao.commit();
} catch (RuntimeException e) {
System.out.println("GerericRepository.salvar" + e.toString());
// TODO: handle exception
if (transacao != null)
transacao.rollback();
throw e;
} finally {
sessao.close();
}
}
public boolean remover(Usuario usuario) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
sessao.delete(usuario);
transacao.commit();
} catch (RuntimeException e) {
System.out.println(e.toString());
// TODO: handle exception
if (transacao != null)
transacao.rollback();
throw e;
} finally {
sessao.close();
}
return true;
}
}
Classe Usuário
@Entity
public class Usuario extends Pessoa {
private int codigo;
public Usuario(String nome, String cpf, String telefone, int codigo) {
super(nome, cpf, telefone);
this.codigo = codigo;
}
public Usuario() {
}
@Override
public boolean equals(Object obj) {
Usuario usuario = (Usuario) obj;
if (usuario.getCpf().equals(this.getCpf())) {
return true;
}
return false;
}
@Override
public String toString() {
return "Usuario" + "Nome: " + getNome() + "CPF: " + getCpf() + "Telefone: " + getTelefone();
}
Classe Teste
public static void main(String[] args) {
Usuario usuario = new Usuario("José Maria", "12026161458", "998771084", 2);
RepositorioUsuario repositorio = new RepositorioUsuario();
//repositorio.salvar(usuario);
repositorio.remover(usuario);
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Configurações de Conexão com o Banco de Dados -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/locadora?serverTimezone=UTC</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- Pool de Conexões -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Gerenciamento do Contexto das Sessões -->
<property name="current_session_context_class">thread</property>
<!-- Cache de Segundo Nível -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Mostra as SQLs Geradas -->
<property name="show_sql">true</property>
<!-- Cria as tabelas do banco de dados
<property name="hbm2ddl.auto">create</property>-->
<!-- Compara a entidade com o que existe no banco de dados validate/update
<property name="hbm2ddl.auto">update</property>-->
</session-factory>
</hibernate-configuration>