Erro na Query

16 respostas
F

não sei o que esta acontecendo... essa query sempre retornando null... alguem pode me ajudar nessa?

private List consultarProdutos() {
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();

        try {

            int codigo = Integer.parseInt(txtBuscar.getText());
            System.out.println(codigo); //TESTANDO SE VEIO O CODIGO

            List<Produtos> obj = (List<Produtos>) s.createQuery("Produtos.findByCodigo").setParameter("codigo", codigo).list();
            
            return obj;

        } catch (Exception ex) {

            try {

                
                List<Produtos> obj = (List<Produtos>) s.createQuery("SELECT p " + "from Produtos p " + "WHERE p.descricao like ?1").setParameter(1, txtBuscar.getText() + "%").list();
                //Query q = entityManager1.createQuery("SELECT p " + "from Produtos p " + "WHERE p.descricao like ?1").setParameter(1, txtBuscar.getText() + "%");
                System.out.println("nome");
                return obj;

            } catch (Exception ex1) {
                return null;
            }

        }
    }

16 Respostas

A

posta sua query,

vc fez a consulta no banco e retorna alguma coisa.

t+

F

Ele está caindo no ultimo catch…

A

posta o erro entao,

F

Foi mal ;x

2011-10-21 12:16:21,065 ERROR [AWT-EventQueue-0] org.hibernate.hql.PARSER: line 1:1: unexpected token: Produtos
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
problemjava.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!

A

posta o erro completo e coloca dentro da tag code

F

Postei os 2 metodos completos para analise...

private List consultarProdutos() {
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();

        try {

            int codigo = Integer.parseInt(txtBuscar.getText());
            System.out.println(codigo);
            List<Produtos> obj = (List<Produtos>) s.createQuery("Produtos.findByCodigo").setParameter("codigo", codigo).list();
      
            
            return obj;

        } catch (Exception ex) {

            try {

                
                List<Produtos> obj = (List<Produtos>) s.createQuery("SELECT p " + "from Produtos p " + "WHERE p.descricao like ?1").setParameter(1, txtBuscar.getText() + "%").list();
                //Query q = entityManager1.createQuery("SELECT p " + "from Produtos p " + "WHERE p.descricao like ?1").setParameter(1, txtBuscar.getText() + "%");
                System.out.println("nome");
                return obj;

            } catch (Exception ex1) {
                return null;
            }

        }
    }

    private void pesqProd() {


        DefaultTableModel tmProd = new DefaultTableModel(colunaProd, 0) {

            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        };
        tmProd.setColumnIdentifiers(colunaProd);

        TableRowSorter<TableModel> sorter;
        sorter = new TableRowSorter<TableModel>(tmProd);
        tabelaProduto.setRowSorter(sorter);


        List consProd = consultarProdutos();
        System.out.println(consProd.size());
        Iterator i = consProd.iterator();
        int cont = 0;

        tabelaProduto.setModel(tmProd);
        while (i.hasNext()) {

            entidades.Produtos cad = (Produtos) i.next();
            tmProd.setNumRows(consProd.size());

            tabelaProduto.getColumnModel().getColumn(1).setPreferredWidth(300);


            tabelaProduto.setValueAt(cad.getCodigo(), cont, 0);
            tabelaProduto.setValueAt(cad.getDescricao(), cont, 1);
            tabelaProduto.setValueAt(cad.getPrecoDeVenda(), cont, 2);


            cont++;
        }
    }
2011-10-21 12:16:21,065 ERROR [AWT-EventQueue-0] org.hibernate.hql.PARSER: line 1:1: unexpected token: Produtos
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
problemjava.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
	at view.vendas.PDVMov.pesqProd(PDVMov.java:170)
	at view.vendas.PDVMov.btBuscarActionPerformed(PDVMov.java:692)
	at view.vendas.PDVMov.access$1400(PDVMov.java:34)
	at view.vendas.PDVMov$16.actionPerformed(PDVMov.java:403)
	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:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
A

cara,

qual linha é essa

at view.vendas.PDVMov.pesqProd(PDVMov.java:170)

pois o erro ta acontecendo ai

F
Iterator i = consProd.iterator();
A

cara,

vc tem que fazer um if ai para verificar se consProd é diferente de null.
e verifique se sua consulta ta correta e retornando dados.

t+

F

mas o try/catch é exatamente pra isso pra vê se a consulta esta acontecendo corretamente… tanto que ele cai no catch porque tem alguma coisa errada na query… o problema é que não sei o motivo do null… porque o banco esta certo.

A

coloca um ex.printStackTrace() no seu catch e posta o erro ai

F

2011-10-21 13:04:48,001 ERROR [AWT-EventQueue-0] org.hibernate.hql.PARSER: line 1:1: unexpected token: Produtos java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based! at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:55) at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:61) at org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:397) at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:369) at view.vendas.PDVMov.consultarProdutos(PDVMov.java:141) at view.vendas.PDVMov.pesqProd(PDVMov.java:171) at view.vendas.PDVMov.btBuscarActionPerformed(PDVMov.java:693) at view.vendas.PDVMov.access$1400(PDVMov.java:34) at view.vendas.PDVMov$16.actionPerformed(PDVMov.java:404) 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:6288) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6053) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4651) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) at java.awt.EventQueue.access$000(EventQueue.java:84) at java.awt.EventQueue$1.run(EventQueue.java:602) at java.awt.EventQueue$1.run(EventQueue.java:600) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:616) at java.awt.EventQueue$2.run(EventQueue.java:614) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at view.vendas.PDVMov.pesqProd(PDVMov.java:172) at view.vendas.PDVMov.btBuscarActionPerformed(PDVMov.java:693) at view.vendas.PDVMov.access$1400(PDVMov.java:34) at view.vendas.PDVMov$16.actionPerformed(PDVMov.java:404) 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:6288) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6053) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4651) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) at java.awt.EventQueue.access$000(EventQueue.java:84) at java.awt.EventQueue$1.run(EventQueue.java:602) at java.awt.EventQueue$1.run(EventQueue.java:600) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:616) at java.awt.EventQueue$2.run(EventQueue.java:614) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

A

posta a sua namedQuery, Produtos.findByCodigo

A

cara,

vc ta fazendo errado, ve ai como se faz uma named query com hibernate
http://www.mkyong.com/hibernate/hibernate-named-query-examples/

t+

F

naaada… mesma coisa ;/

A

cara,

posta sua namedquery ai, deixa eu ver o que vc ta fazendo

Criado 21 de outubro de 2011
Ultima resposta 21 de out. de 2011
Respostas 16
Participantes 2