Problema ao criar tabelas e inserir no banco- com Hibernate

4 respostas
mysqlhibernateprogramaçãojava
N

Pessoa meu projeto possui duas classes CATEGORIAtest e PRODUTOtest
na classe categoriaTest eu consigo inserir,edita,excluir item no banco atravez do Hibernate. ae criei a classe Produtotest, copiei e “colei os codigos” mas essa classe não faz nada, nem log de erro gera.

obs- copiei e colei o codigo da classe produtoTest na classe categoriaTest e ele funcionou normal. pq isso acontece? pq a nova classe não faz nada?

PERSISTENCE

<?xml version="1.0" encoding="utf-8"?>

org.hibernate.ejb.HibernatePersistence

<!-- Implementação do JPA -->
 <!--<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>-->
<!-- Lista de entidades -->
<class>br.com.descompila.model.bin.Categoria</class>
<class>br.com.descompila.model.bin.Produto</class>
<properties>
  <!-- Propriedades JDBC -->
  <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
  <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5433/dbhibernate"/>
  <property name="javax.persistence.jdbc.user" value="postgres"/>
  <property name="javax.persistence.jdbc.password" value="admin"/>
  <!--  atualiza o banco, gera as tabelas se for preciso -->

PRODUTOTEST

package br.com.descompila.tests;

import br.com.descompila.model.bin.Categoria;

import br.com.descompila.model.bin.Produto;

import br.com.descompila.model.dao.ProdutoDAO;

/**
*
*
*/
public class ProdutoTest {

public static void main(String[] args) {
    
    
    ProdutoDAO dao = new ProdutoDAO();
    Categoria c = new Categoria();        
    c.setId(6);
    
    Produto produto = new Produto();
    produto.setDescricao("feijao");
    produto.setQtd(10);
    produto.setValor(4.50);
    produto.setCategoria(c);
    
    dao.save(produto);
    
}

}

PRODUTO

package br.com.descompila.model.bin;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.ManyToOne;

/**
*
*
*/

@Entity
public class Produto {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String Descricao;
private Integer qtd;
private Double valor;
@ManyToOne
private Categoria categoria;

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getDescricao() {
    return Descricao;
}

public void setDescricao(String Descricao) {
    this.Descricao = Descricao;
}

public Integer getQtd() {
    return qtd;
}

public void setQtd(Integer qtd) {
    this.qtd = qtd;
}

public Double getValor() {
    return valor;
}

public void setValor(Double valor) {
    this.valor = valor;
}

public Categoria getCategoria() {
    return categoria;
}

public void setCategoria(Categoria categoria) {
    this.categoria = categoria;
}

PRODUTODAO

package br.com.descompila.model.dao;

import br.com.descompila.model.Conection.ConnectionFactory;

import br.com.descompila.model.bin.Produto;

import javax.persistence.EntityManager;

/**
*
*
*/
public class ProdutoDAO {

public Produto save(Produto produto){
    EntityManager em = new ConnectionFactory().getConnection();

    try {
        em.getTransaction().begin();
        em.persist(produto);
        em.getTransaction().commit();
        
        
    } catch (Exception e) {
        System.err.println(e);
        em.getTransaction().rollback();
    }finally{
        em.close();
    }
return produto;

}

}


segue categoria

package br.com.descompila.tests;

import br.com.descompila.model.bin.Categoria;
import br.com.descompila.model.dao.CategoriaDAO;

/**
*
*
*/
public class CategoriaTest {

public static void main(String[] args) {
    
    Categoria c = new Categoria();
    CategoriaDAO dao = new CategoriaDAO();
    
    c.setId(8);
    c.setDescricao("naosei3");  //SALVANDO EDITANDO INSERINDO
    dao.save(c);
    
    //CategoriaDAO dao = new CategoriaDAO();
   // Categoria c = dao.findById(2);
    //System.out.println(c.getDescricao());  //BUSCANDO DADOS

    
    
    //for(Categoria c: dao.findAll()){

//System.out.println("Descrição: "+c.getDescricao()); // BUSCANDO TODOS DADOS

//dao.remove(2);                                //REMOVER

}
}

Obrigado desde já

4 Respostas

Jhonatas_Tomaz

verifica primeiro se está recebendo informações do banco , faz um debug de sua aplicação

N

eu Debuguei, ele nem mesmo exucuta os codigo da classe produtoTest… não importa o codigo q tenha nela, é como se o programa ignorasse essa classe… a classe categoriaTest execultou tranquilamente o codigo da classe produtoTest e funcinou a inserção da tabela.
@Jhonatas_Tomaz

smatt

As duas classes estão no mesmo projeto. Então porque tem duas classes static main no seu projeto?

smatt

Fora que você duplicou o post… :neutral_face: por qual motivo você o duplicou? :face_with_raised_eyebrow:

Criado 3 de julho de 2019
Ultima resposta 4 de jul. de 2019
Respostas 4
Participantes 3