Problema no Hibernate MUITO Esquisito - Minha classe.test não faz nada

Ola pessoa, é o seguinte, estou com um problema muito “esquisito”.

minha classe ProdutoTest não faz nada(não, insere, não altera, nem erro gera)


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;

/**
 *
 * @author junyor
 */
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);
        
    }
    
}

Agora vem o mais estranho, na minha classe Categoria.Test eu colei o codigo acima e funciona normal.
CategoriaTest:funcionou
Produto Test: não funcionol

Pq acontece isso sendo que o codigo é o mesmo e só criei uma nova classe?


segue meu 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 -->

ProdutoDAO Caso precise:
=----------------------------------------------

package br.com.descompila.model.dao;

import br.com.descompila.model.Conection.ConnectionFactory;
import br.com.descompila.model.bin.Produto;
import javax.persistence.EntityManager;

/**
*

  • @author junyor
    */
    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;

    }

}

Manda as classes Produto e Categoria para vermos como está o mapeamento delas

1 curtida

@lucastody
Produto

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);
    
}

}

categoria

package br.com.descompila.model.bin;

import javax.annotation.Generated;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
*
*
*
@Entity
public class Categoria {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String descricao;


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;
}

}

Faltou a classe Produto

vdd desculpe:

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;
    }