4
respostas

TypedQuery com lista

Olá,

Por gentileza, estou fazendo um teste onde tento colocar uma lista no named parameter. Tentei o código abaixo mas não funciona. Alguém teria uma dica?

    List<Integer> situacoes = new ArrayList<Integer>();
    situacoes.add(1);
    situacoes.add(2);
    situacoes.add(3);

        TypedQuery<Aluno> alunos =  em
                .createQuery(
                    "SELECT a FROM Aluno a WHERE situacao.id IN (:parametro)" , Aluno.class);
    alunos.setParameter(":parametro",  situacoes);

Gratidão!

4 respostas

Oi Tiago, tudo bem?

O método setParameter não aceita um List, então vc precisa usar no lugar dele um setParameterList. Veja se deu certo.

Já tinha tentado o setParameterList, mas ele não tem para java 8, certo? Não tem para TypedQuery nem Query.

Eu acho que esse método existia para versões anteriores do java.

Neste trecho setParameter(":parametro", situacoes) você não precisa dos dois pontos : Só precisa deles lá no IN.

Sim, era isso mesmo! Foi ratiada minha :)

Muito obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software