Problemas na Tela Listar Cliente

depois ele não dá erro, porém só pesquisa o nome no qual está cadastrado o codigo 1.

[quote=emanuelrm]substituindo pelo numero 1
da o seguinte erro

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2 at sun.font.FontDesignMetrics.charsWidth(Unknown Source) at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source) at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source) at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source) at javax.swing.text.PlainView.viewToModel(Unknown Source) at javax.swing.text.FieldView.viewToModel(Unknown Source) at javax.swing.plaf.basic.BasicTextUI$RootView.viewToModel(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.viewToModel(Unknown Source) at javax.swing.text.DefaultCaret.moveCaret(Unknown Source) at javax.swing.text.DefaultCaret.mouseDragged(Unknown Source) at java.awt.AWTEventMulticaster.mouseDragged(Unknown Source) at java.awt.Component.processMouseMotionEvent(Unknown Source) at javax.swing.JComponent.processMouseMotionEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) [/quote]

Você falou nesse post que dava erro.
Se não der, basta você garantir que naquela chamada ao método getText do codigoField, seja retornado um valor numérico válido.

mas se eu retornar um valor númerico válido, esse valor não vai fazer parte da minha pesquisa?

"SELECT p FROM cliente_locadora p WHERE p.cod_cli IS NOT NULL OR nome_cli LIKE '%" + nome_cli + "%'" //vc fez assim..

//voce ker procurar pelo ID ou pelo NOME onde o ID Não seja NULL... Por acaso vai existir algum cod_cli NULL??

//eu faria assim, para buscar pelo nome ou pelo cod_cli
"SELECT * FROM cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ?"

//como vc ker que o cod_cli nao seja Null vc faz assim
"SELECT * FROM cliente_locadora p WHERE (p.cod_cli = ? OR p.nome_cli LIKE ?) AND p.cod_cli IS NOT NULL"

substituindo codigo field por 1[/b]cliente_locadora = buscarClientePorParametros(1, nomeField.getText()); [b],
e colocando esse select “SELECT * FROM cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ?”
dá o seguinte erro

[code] line 1:8: unexpected token: *
java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM Beans.cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ? AND p.cod_cli = 1 AND p.nome_cli LIKE ‘%2%’]
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:617)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
at views.BuscaCliente.buscarClientePorParametros(BuscaCliente.java:284)
at views.BuscaCliente.buscarAction(BuscaCliente.java:254)
at views.BuscaCliente.access$4(BuscaCliente.java:247)
at views.BuscaCliente$5.actionPerformed(BuscaCliente.java:239)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM Beans.cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ? AND p.cod_cli = 1 AND p.nome_cli LIKE ‘%2%’]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
… 29 more

[/code]

e deixando esta linha cliente_locadora = buscarClientePorParametros(Integer.parseInt(codigoField.getText()), nomeField.getText());
e colocando esse select “SELECT * FROM cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ?”
dá o seguinte erro


Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at views.BuscaCliente.buscarAction(BuscaCliente.java:254)
	at views.BuscaCliente.access$4(BuscaCliente.java:247)
	at views.BuscaCliente$5.actionPerformed(BuscaCliente.java:239)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Complicado hein…

no select em vez de * coloca p

SELECT * FROM Beans.cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ? AND p.cod_cli = 1 AND p.nome_cli LIKE ‘%2%’

presta atençao nesse erro… qdo vc executa la akelas condiçoes aumenta o seu select…
comenta elas pra vc ver oq vai acontecer!!

xD~~

Colocando o p.

segue o código

public List<cliente_locadora> buscarClientePorParametros(Integer cod_cli, String nome_cli) {
		EntityManager em = JpaUtil.getEntityManager();

		List<cliente_locadora> cliente = new ArrayList<cliente_locadora>();

		StringBuilder jpql = new StringBuilder("SELECT p FROM cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ?" );

		if (cod_cli != null && !cod_cli.equals("")) {
			jpql.append(" AND p.cod_cli = " + cod_cli);
		}

		if (nome_cli != null && !nome_cli.equals("")) {
			jpql.append(" AND p.nome_cli LIKE '%" + nome_cli + "%'");
		}

		try {
			Query query = em.createQuery(jpql.toString());
			cliente = query.getResultList();
		} catch (Exception e) {
			e.printStackTrace();
		}

		return cliente;
	}

segue o erro:


schema update complete
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at views.BuscaCliente.buscarAction(BuscaCliente.java:254)
	at views.BuscaCliente.access$4(BuscaCliente.java:247)
	at views.BuscaCliente$5.actionPerformed(BuscaCliente.java:239)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Cara…

vc tratou sobre a conversão do inteiro null?

tem que tratar pra parar de dar esse erro…

qualquer coisa add eu no msn q eu ti ajudo!!

xD~~

blz, muito obrigado, qual seu msn?

altitdb@msn.com

xD~~