| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 16:17:17
|
supertchuco
Thread.start()
![[Avatar]](/images/avatar/873189f24424dbbe251666a3531ee809.jpg)
Membro desde: 22/04/2009 15:15:25
Mensagens: 43
Offline
|
Boa tarde a todos estou com um problema que me está fazendo arrancar os cabelos....
É o seguinte , tenho uma tela , que um usuário digita qualquer slq, tanto insert, update , select ....etc.., abaixo o código no java onde está o problema :
O problema é que se o comando é um select , então o q.list() retorna algo , nem que seja uma lista vazia , se é outra coisa (insert, update)ele não cria essa list() , e o programa acaba gerando esse erro ao tentar retornar o q.list() "ERROR [JDBC EXCEPTION] NO RESULT FOR SQL".
Eu preciso diferenciar se o retorno vai ter uma lista ou não , ou poder diferenciar se o resultado da operação tem um retorno ou não , tá brabo, não consigo testar isso,
This message was edited 2 times. Last update was at 12/03/2010 18:22:29
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 16:22:59
|
malucocelo
JavaBaby
![[Avatar]](/images/avatar/92914b863caab3084c5cf0cb02e72b11.png)
Membro desde: 05/08/2009 12:38:53
Mensagens: 77
Offline
|
Verifica se a String recebida começa com select, update ou delete.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 16:34:23
|
supertchuco
Thread.start()
![[Avatar]](/images/avatar/873189f24424dbbe251666a3531ee809.jpg)
Membro desde: 22/04/2009 15:15:25
Mensagens: 43
Offline
|
Pensei nisso, mas o usuário pode digitar qualquer bloco de sql, misturando , então pensei se teria como testar se no "q" existe o objeto list() criado , mas não encontrei algo do tipo.............
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 16:49:12
|
Poneis123
JavaGuru
![[Avatar]](/images/avatar/7e668ae75a11a92aa89b8b16bf08eea6.jpg)
Membro desde: 27/02/2008 14:08:51
Mensagens: 205
Localização: Osasco-SP
Offline
|
Cara, não entendo muito de hibernate, se eu falar bosta desculpa ae.
mas assim, quando vc chama o q.list() é uma chamada de um método certo? não tem como o método hora retornar uma lista, hora não retornar.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 16:51:25
|
supertchuco
Thread.start()
![[Avatar]](/images/avatar/873189f24424dbbe251666a3531ee809.jpg)
Membro desde: 22/04/2009 15:15:25
Mensagens: 43
Offline
|
A questão seria, antes de dar o retorno dessa função , eu verificaria se o q.list() existe, caso não gerava outro retorno.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 17:00:14
|
Poneis123
JavaGuru
![[Avatar]](/images/avatar/7e668ae75a11a92aa89b8b16bf08eea6.jpg)
Membro desde: 27/02/2008 14:08:51
Mensagens: 205
Localização: Osasco-SP
Offline
|
num da pra colocar ele num try catch?
novamente se eu falei alguma coisa grotesca, foi mal.. só tentando ajudar de alguma forma =)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 17:12:41
|
supertchuco
Thread.start()
![[Avatar]](/images/avatar/873189f24424dbbe251666a3531ee809.jpg)
Membro desde: 22/04/2009 15:15:25
Mensagens: 43
Offline
|
Capaz , kra ...........
Tipo o que tu me disse agora até serve, mas tem como diferenciar duas excessões , tipo uma é essa : error[jdbc exception] no result for sql , essa excessão teria um bloco catch e depois teria que ter outro para as outras excessões.....
Teria como ? Não entendo muito desta parte.....
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 17:34:55
|
Poneis123
JavaGuru
![[Avatar]](/images/avatar/7e668ae75a11a92aa89b8b16bf08eea6.jpg)
Membro desde: 27/02/2008 14:08:51
Mensagens: 205
Localização: Osasco-SP
Offline
|
tem sim..
na verdade vc não precisa criar um bloco catch para todas as exceções possiveis.. vc cria somente para as que vc quer tratar q no caso é a (error[jdbc exception] no result for sql) as demais serão jogadas para o chamador do seu método listaComSql() como uma exceção UnisException q ta na assinatura do método.
Mas pra vc tratar apenas essa exceção vc precisa saber qual é exatamente a exceção q ta retornando, provavelmente o seu está retornando a seguinte exceção:
https://www.hibernate.org/hib_docs/v3/api/org/hibernate/JDBCException.html
ai vc precisa fazer o bloco da seguinte forma:
Testa ae =)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 18:21:54
|
supertchuco
Thread.start()
![[Avatar]](/images/avatar/873189f24424dbbe251666a3531ee809.jpg)
Membro desde: 22/04/2009 15:15:25
Mensagens: 43
Offline
|
Bah velho valeu mesmo , eheheh agora aprendi a parte das excessões.....
segue a solução
Só tive que fazer uma gambiarra ali no retorno , mas funfou bem....
|
|
|
 |
|
|