How to resolve this Error: Unknown Entity when saving to Hibernate?

Asked

Viewed 325 times

0

Follow the code Itensvendadao:

package com.livro.capitulo3.crudannotations;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.hibernate.*;
import com.livro.capitulo3.conexao.HibernateUtil;
public class ItensVendaDAO {
 @PersistenceContext
  private EntityManager em;



public void salvar(ItensVenda itensVenda) {
    Session sessao = null;
    Transaction transacao = null;

    try {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.save(itensVenda);
        transacao.commit();
    } catch (HibernateException e) {
        System.out.println("Não foi possível inserir  ItensVenda. Erro: " + e.getMessage());
    } finally {
        try {
            sessao.close();
        } catch (Throwable e) {
            System.out.println("Erro ao fechar operação de inserção. Mensagem: " + e.getMessage());
        }
    }
}

public void atualizar(ItensVenda itensVenda) {
    Session sessao = null;
    Transaction transacao = null;

    try {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.update(itensVenda);
        transacao.commit();
    } catch (HibernateException e) {
        System.out.println("Não foi possível alterar itensvenda. Erro: " + e.getMessage());
    } finally {
        try {
            sessao.close();
        } catch (Throwable e) {
            System.out.println("Erro ao fechar operação de atualização. Mensagem: " + e.getMessage());
        }
    }
}

public void excluir(ItensVenda itensVenda) {
    Session sessao = null;
    Transaction transacao = null;

    try {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.delete(itensVenda);
        transacao.commit();
    } catch (HibernateException e) {
        System.out.println("Não foi possível excluir itensvenda. Erro: " + e.getMessage());
    } finally {
        try {
            sessao.close();
        } catch (Throwable e) {
            System.out.println("Erro ao fechar operação de exclusão. Mensagem: " + e.getMessage());
        }
    }
}


 public List<ItensVenda> listarItensVenda (){
        @SuppressWarnings("unused")
        Query lista = (Query) em.createQuery("select v from Venda v");
        return listarItensVenda();
      }







@SuppressWarnings("unchecked")
public List<ItensVenda> listar() {
    Session sessao = null;
    Transaction transacao = null;
    Query consulta = null;
    List<ItensVenda> resultado = null;

    try {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        consulta = sessao.createQuery("from ItensVenda");
        resultado = consulta.list();
        transacao.commit();
        return resultado;
    } catch (HibernateException e) {
        System.out.println("Não foi possível selecionar itensvenda. Erro: " + e.getMessage());
        throw new HibernateException(e);
    } finally {
        try {
            sessao.close();
        } catch (Throwable e) {
            System.out.println("Erro ao fechar operação de consulta. Mensagem: " + e.getMessage());
        }
    }
}

public ItensVenda buscaItensvenda(int valor) {
    ItensVenda itensVenda = null;
    Session sessao = null;
    Transaction transacao = null;
    Query consulta = null;

    try {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        consulta = sessao.createQuery("from ItensVenda where codigo = :parametro");
        consulta.setInteger("parametro", valor);
        itensVenda = (ItensVenda) consulta.uniqueResult();
        transacao.commit();
        return itensVenda;
    } catch (HibernateException e) {
        System.out.println("Não foi possível buscar contato. Erro: " + e.getMessage());
    } finally {
        try {
            sessao.close();
        } catch (Throwable e) {
            System.out.println("Erro ao fechar operação de buscar. Mensagem: " + e.getMessage());
        }
    }
    return itensVenda ;
}


public static void main (String[] args ) {

    ItensVendaDAO dao = new ItensVendaDAO();

        ItensVenda venda = new ItensVenda();

        venda.setCodigo(1);
        venda.setDescricao("Venda 2");
        venda.setPreco(44.5f);
        venda.setQuantidade(2);
        venda.setValor(33);

        dao.salvar(venda);









}

} Follow the other class with Annotations:

package com.livro.capitulo3.crudannotations;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity

@Table(name = "itensvenda")


public class ItensVenda {

@Id
@Column(name = "codigo")
private Integer codigo;

@Column(name = "descricao",length = 200, nullable = true)
private String descricao;

@Column(name = "preco")
private float preco;

@Column(name = "quantidade")
private Integer quantidade;

@Column(name = "valor")
private float valor;

public Integer getCodigo() {
    return codigo;
}

public void setCodigo(Integer codigo) {
    this.codigo = codigo;
}

public String getDescricao() {
    return descricao;
}

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

public float getPreco() {
    return preco;
}

public void setPreco(float preco) {
    if(preco >0) {
    this.preco = preco;

    }else 
        System.out.println("O Preço Não pode ser igual a zero");
}

public Integer getQuantidade() {
    return quantidade;
}

public void setQuantidade(Integer quantidade) {
    if(quantidade > 0) {
    this.quantidade = quantidade;

    } else 

        System.out.println("A quantidade não pode ser igual a zero ");
}

public float getValor() {
    return valor;
}

public void setValor(float valor) {
    this.valor = quantidade * preco;
}
}

Follows xml code:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>
    <!-- Configuração da conexão com o banco MySQL e dialeto -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property 
    name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property 
     name="connection.url">jdbc:mysql://localhost/trabalhomodular</property>
    <property name="connection.username">root</property>
    <property name="connection.password"> </property>

    <!-- Usando as configurações do C3PO para pool de conexões -->
    <property name="c3po.min_size">5</property>
    <property name="c3po.max_size">20</property>
    <property name="c3po.timeout">300</property>
    <property name="c3po.max_statements">50</property>
    <property name="c3po.idle_test_period">3000</property>

    <!-- Configurações de debug -->
    <!--
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="generate_statistics">true</property>
    <property name="use_sql_comments">true</property>
    -->     


    <!-- Mapeando classes -->



    <mapping resource="com/livro/capitulo3/crudxml/ItensVenda.hbm.xml"/>

    <mapping class="com.livro.capitulo3.crudannotations.ItensVendaDAO"/>





    <!-- Mapeando classes -->


    <mapping resource="com/livro/capitulo3/crudxml/NotaVenda.hbm.xml"/>

    <mapping class="com.livro.capitulo3.crudannotations.NotaVendaDAO"/>
    </session-factory>
    </hibernate-configuration>
  • How is your persistence.xml?

  • follows xml code

  • Try putting <mapping class="com.livro.capitulo3.crudannotations.ItensVenda" />

1 answer

0

You should map your entities (domain classes), not Daos.

<mapping class="com.livro.capitulo3.crudannotations.NotaVendaDAO"/> --> <mapping class="com.livro.capitulo3.crudannotations.NotaVenda"/> 

<mapping class="com.livro.capitulo3.crudannotations.ItensVendaDAO"/> --> <mapping class="com.livro.capitulo3.crudannotations.ItensVenda"/>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.