duvidaHibernateQuery

3 respostas
TDS

Pessoal eu montei esta query abaixo e ela me retorna uma lista, bom o select que o hibernate me exibi, qdo executado no banco funciona certinho.

Query q = s.createQuery("from LoginAcessoTO as loginAcesso " +

"inner join loginAcesso.login as login " +

"inner join loginAcesso.aplicacao as aplicacao " +

"where login.login = ? and login.senha = ? " +

“order by aplicacao.descrAplicacao”);

q.setString(0, loginTO.getLogin());

q.setString(1, loginTO.getSenha());

lista = q.list();

Bom dai eu montei um main com um for para fazer o teste, vejam:

for (Iterator iter = lista.iterator(); iter.hasNext(); ) {

LoginAcessoTO lacTO = (LoginAcessoTO) iter.next();

System.out.println("Descrição Aplicacão: "						+ lacTO.getAplicacao().getDescrAplicacao());}

deu o seguinte erro:

java.lang.ClassCastException
at TesteLogin.main(TesteLogin.java:65)
Exception in thread “main”

O que estou fazendo de errado :?: :?: :?: Alguma dica…

Obrigado, Thiago.

3 Respostas

_fs

Não consegui identificar algum erro, porém, verifique estas coisas:

  1. Se não há duas classes LoginAcessoTO diferentes com o mesmo nome em pacotes diferentes.
  2. Se os objetos da lista não são na verdade Object[]s
  3. Se você não está alterando os objetos na lista antes de iterar

E outra, tem certeza que esses inner joins ai no meio são necessários? Não basta:

from LoginAcessoTO as loginAcesso 
where loginAcesso.login.login = ? and loginAcesso.login.senha = ? 
order by loginAcesso.aplicacao.descrAplicacao

E por último, quando for postar código, coloque-o entre as tags [ code]seucodigo[ /code], assim ele fica endentadinho :wink:

J
lista = q.list();

a sua variável lista provavelmente não é uma java.util.List

TDS

Grande Lipe,

sempre vc me dando um ‘help’, relamente os inner joins que estavam no meio não eram necessários. Ta funcionando redondinho agora.

brigadão… :slight_smile: :smiley: :stuck_out_tongue:

Criado 16 de dezembro de 2004
Ultima resposta 16 de dez. de 2004
Respostas 3
Participantes 3