3
respostas

No meu projeto não consigo finalizar venda

Ao confirmar a finalização de uma venda dá um erro de exceção e a venda não é finalizada, ou seja o produto não é contabilizado no banco de dados e nem a mensagem de sucesso é gerada segue o código.

Vendas .DAO (erro no console)

@SuppressWarnings("unchecked")
    public List<Vendas> listar() {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        List<Vendas> venda = null;

        try {

            Query consulta = sessao.getNamedQuery("Venda.listar");
            venda = consulta.list();


        } catch (RuntimeException ex) {
            throw ex;
        }

        finally {
            sessao.close();
        }

        return venda;
    }



    public Vendas buscarPorCodigo(Long codigo) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Vendas venda = null;

        try {

            Query consulta = sessao.getNamedQuery("Venda.buscarPorCodigo");
            consulta.setLong("codigo", codigo);
            venda = (Vendas) consulta.uniqueResult();


        } catch (RuntimeException ex) {
            throw ex;
        }

        finally {
            sessao.close();
        }

        return venda;
    }


    public void excluir(Vendas venda) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Transaction transacao = null;

        try {
            transacao = sessao.beginTransaction(); // abrindo a transação
            sessao.delete(venda);
            transacao.commit(); // confirmando a transação

        } catch (RuntimeException ex) {
            if (transacao != null) {
                transacao.rollback(); // desfaz a transação
            }

        }

Vendas.Bean (erro no console)

 public void remover(Item item){

      int posicaoEncontrada = -1;

         for(int pos = 0; pos < itens.size() && posicaoEncontrada < 0; pos++){
            Item itemTemp = itens.get(pos);

            if(itemTemp.getProduto().equals(item.getProduto())){
                posicaoEncontrada = pos;
            }
         }

         if(posicaoEncontrada > -1){
             itens.remove(posicaoEncontrada);
             vendaCadastro.setValor_total(vendaCadastro.getValor_total().subtract(item.getValor_parcial()));
         }

     }

     public void carregarDadosVenda(){
         vendaCadastro.setHorario(new Date());

         FuncionariosDAO dao = new FuncionariosDAO();
         Funcionario funcionario = dao.buscarPorCodigo(4L);
         vendaCadastro.setFuncionario(funcionario);
     }

     public void salvar(){
         try {


             VendasDAO vdao = new VendasDAO();
             Long codigoVenda = vdao.salvar(vendaCadastro);

             Vendas vendaFK = vdao.buscarPorCodigo(codigoVenda);

             for(Item item : itens){
                 item.setVenda(vendaFK);
                 ItemDAO itemdao = new ItemDAO();
                 itemdao.salvar(item);
             }

             vendaCadastro = new Vendas();
             vendaCadastro.setValor_total(new BigDecimal("0.00"));
             itens = new ArrayList<Item>();

         JSFUtil.adicionarMensagemSucesso("Salvo com Sucesso");

         } catch (RuntimeException e) {
         JSFUtil.adicionarMensagemErro("ex.getMessage()");
         e.printStackTrace();
         }

Console erro

    at br.com.VendasPecas.DAO.VendasDAO.buscarPorCodigo(VendasDAO.java:74)
    at br.com.VendasPecas.Bean.VendasBean.salvar(VendasBean.java:182)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
    at javax.faces.event.MethodExpressionActionListener.processAction(Unknown Source)
    at javax.faces.event.ActionEvent.processListener(Unknown Source)
    at javax.faces.component.UIComponentBase.broadcast(Unknown Source)
    at javax.faces.component.UICommand.broadcast(Unknown Source)
    at javax.faces.component.UIViewRoot.broadcastEvents(Unknown Source)
    at javax.faces.component.UIViewRoot.processApplication(Unknown Source)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(Unknown Source)
    at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)
    at javax.faces.webapp.FacesServlet.service(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at 
3 respostas

Qual é a linha VendasDAO.java:74 ?

Posta o código da classe ItemDAO

itemDao

package br.com.VendasPecas.DAO;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.VendasPecas.domain.Item;
import br.com.VendasPecas.util.HibernateUtil;

public class ItemDAO {


    public void salvar(Item item) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Transaction transacao = null;

        try {
            transacao = sessao.beginTransaction(); // abrindo a transação
            sessao.save(item);
            transacao.commit(); // confirmando a transação

        } catch (RuntimeException ex) {
            if (transacao != null) {
                transacao.rollback(); // desfaz a transação
            }

        }

        finally {
            sessao.close();
        }

    }

    @SuppressWarnings("unchecked")
    public List<Item> listar() {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        List<Item> item = null;

        try {

            Query consulta = sessao.getNamedQuery("Item.listar");
            item = consulta.list();


        } catch (RuntimeException ex) {
            throw ex;
        }

        finally {
            sessao.close();
        }

        return item;
    }



    public Item buscarPorCodigo(Long codigo) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Item item = null;

        try {

            Query consulta = sessao.getNamedQuery("Item.buscarPorCodigo");
            consulta.setLong("codigo", codigo);
            item = (Item) consulta.uniqueResult();


        } catch (RuntimeException ex) {
            throw ex;
        }

        finally {
            sessao.close();
        }

        return item;
    }


    public void excluir(Item item) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Transaction transacao = null;

        try {
            transacao = sessao.beginTransaction(); // abrindo a transação
            sessao.delete(item);
            transacao.commit(); // confirmando a transação

        } catch (RuntimeException ex) {
            if (transacao != null) {
                transacao.rollback(); // desfaz a transação
            }

        }

        finally {
            sessao.close();
        }

    }



    public void editar(Item item) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Transaction transacao = null;

        try {
            transacao = sessao.beginTransaction(); // abrindo a transação

            sessao.update(item);
            transacao.commit(); // confirmando a transação

        } catch (RuntimeException ex) {
            if (transacao != null) {
                transacao.rollback(); // desfaz a transação
            }

        }

        finally {
            sessao.close();
        }

    }




}

Linha 74

public Vendas buscarPorCodigo(Long codigo) {
        Session sessao = HibernateUtil.getSessionFactory().openSession();

        Vendas venda = null;

        try {

            Query consulta = sessao.getNamedQuery("Venda.buscarPorCodigo");
            consulta.setLong("codigo", codigo);
            venda = (Vendas) consulta.uniqueResult();


        } catch (RuntimeException ex) {
            throw ex;
        }

        finally {
            sessao.close();
        }

        return venda;
    }

Tá faltando parte da primeira linha do erro do console. Tipo

java.lang.NullPointerException