Dúvida Não etendo o erro!

8 respostas
D

Pessoal olha o código Abaixo:

String documento = "'" + TF_NumeroDocumento.getText() + "'";
            int cod_fornecedor = Integer.parseInt(TFCodFornecedor_entMercadoria.getText());
            NotasPesq = bancoPUEntityManager.createQuery("SELECT n FROM Nfentrada n INNER JOIN n.codFornecedor f WHERE (f.codigo =" + cod_fornecedor + ") AND (n.numerodoc=" + documento + ")");
            if (NotasPesq.getResultList().isEmpty()) {
                  jButton5ActionPerformed(evt);
            } else {
                Nfentrada i = new Nfentrada();
                i = (Nfentrada) NotasPesq.getSingleResult();
                JOptionPane.showMessageDialog(null,i.getCodFornecedor().getBairro());

Esta pesquisa funciona perfeitamente com registros já contidos no banco antes de executar o .jar, se durante a execução eu incluir um novo registro no banco e fazer esta pesquisa o trecho JOptionPane.showMessageDialog(null,i.getCodFornecedor().getBairro()); me retorna null e com isso acontece o erro.

Se eu sair do programa e executar denovo a pesquisa funciona… por favor o que está contecendo?
:shock:

8 Respostas

D

quem quizer que eu explique melhor ou alguém que queira me ajudar, meu msn é [email removido]

eu queria entender porque que o JOptionPane.showMessageDialog(null,i.getCodFornecedor().getBairro) retorna null quando executado com registros inclusos no banco após a execução do .jar

vanderlanio

Palpite . . .
Realize um debug, e capaz de ele não esta dando o commit logo apos inserir o novo registro, sendo assim o codigo do fornecedor pode ainda não ter sido gerado (sequence) e ele esta retornando nulo !

D

Vanderlanio

olha só esse código

public void confirmanf(Nfentrada updatenota) {

        EntityManager em = getEntityManager();
        try {
            em.getTransaction().begin();
            em.merge(updatenota);
            em.getTransaction().commit();
            JOptionPane.showMessageDialog(null, "INCLUSÃO REALIZADA COM SUCESSO!");
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Não foi Possível Fazer a Alteração! Erro:\n \n" + ex);
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }


ASsim que é executádo esse código se eu abrir o Query Browser eu vejo o registro gravado direitinho no banco  que a pesquisa citada no tópico não funciona, somente se eu fechar e abrir o programa denovo  :(
D

darkmind:
Vanderlanio

olha só esse código

public void confirmanf(Nfentrada updatenota) {

        EntityManager em = getEntityManager();
        try {
            em.getTransaction().begin();
            em.merge(updatenota);
            em.getTransaction().commit();
            JOptionPane.showMessageDialog(null, "INCLUSÃO REALIZADA COM SUCESSO!");
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Não foi Possível Fazer a Alteração! Erro:\n \n" + ex);
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }

ASsim que é executádo esse código se eu abrir o Query Browser eu vejo o registro gravado direitinho no banco só que a pesquisa citada no tópico não funciona, somente se eu fechar e abrir o programa denovo :frowning:

vanderlanio

Ative o log (JPA) e cole ai pra gente da uma olhada !

D

o único Erro que me retorna é esse:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at gui.MDIApplication.jButton14ActionPerformed(MDIApplication.java:5273)
        at gui.MDIApplication.access$6100(MDIApplication.java:39)
        at gui.MDIApplication$61.actionPerformed(MDIApplication.java:2547)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
TF_CFOP.setText(i.getCodNatureza().getCodigoOP());

também retorna null, qualquer relacionamento que eu use retorna nulo, se eu fechar e abrir o programa… a pesquisa funciona, se eu incluir um novo registro, esse novo registro não funciona na pesquisa… mas os antigos funcionam…

vanderlanio

Eu queria da uma olhada e no log gerado pelo Hibernate ! ( para ver os sql gerados )

D

Pessoal já resolvi o erro, na verdade não tinha erro no código que eu passei era cabeçada que eu estava dando atoa, tava passando valor null em outro lugar do programa, ai nunca que ia funcionar, agradeço a ajuda Mesmo

OBRIGADO!

Criado 2 de junho de 2008
Ultima resposta 5 de jun. de 2008
Respostas 8
Participantes 2