Consulta JPA com IN

Olá comunidade,

Como ficaria a consulta abaixo, só que passando uma lista?É possível passar um array de integers como parâmetro no in?

Ex:

Utilize o setParameterList
Ex:

[code]
List listInt = new ArrayList();
listInt.add(1);
listInt.add(2);
listInt.add(3);
listInt.add(4);
listInt.add(5);

    List ret = getSession().createQuery("SELECT p FROM Pessoa p where p.id in (:listInt)").setParameterList("listInt",listInt ).list();[/code]

tente

hql

“SELECT m FROM Minarini AS m WHERE m.aulas in (:aulasVetor)”

no java

query.setParameterList(“aulasVetor”, myList)

quando eu estava respondendo o marcos não estava constava ainda heheheheh desculpe pela duplicação

hmmmmmmmm.

Só que tem um problema.Esses exemplos que vocês deram foi para o Hibernate né?

O problema que eu estou usando o TopLink como provedor.Ele não tem um método “setParameterList”.

Quando eu seto a lista, está sendo lançada a seguinte exceção:

Sim, eu não tinha me atentado que aquele exemplo é para o hibernate, a Query do JPA não tem o método setParameterList, infelizmente não sei te ajudar.

cara da pra tu fazer na mão mesmo! pega uma string vazia vai dando um += nela com os valores do seu vetor depois vc concatena sua consulta com essa string. Exemplo:

String variavelComValores = “”;
for () {
variavelComValores +=
}
“select a from Arthur where a.cod in (” + variavelComValores + “)”;

[quote=arthurminarini]cara da pra tu fazer na mão mesmo! pega uma string vazia vai dando um += nela com os valores do seu vetor depois vc concatena sua consulta com essa string. Exemplo:

String variavelComValores = “”;
for () {
variavelComValores +=
}
“select a from Arthur where a.cod in (” + variavelComValores + “)”;[/quote]

Se for fazer isso não utilize String, dê preferência para StringBuilder, pois a concantenação de Strings cria objetos desnecessários, tornando mais lento a execução

Na verdade eu tava querendo evitar concatenar strings, mas se não tem jeito. rs

Andei lendo a documentação do JPA 2.0, e é possível setar um array para casos como esse no IN.Eu fiz um teste aqui e realmente funcionou.

Vou ver se adoto o JPA 2.0 no meu projeto.

Obrigado pela ajuda pessoal.

[quote=Bernardo]Na verdade eu tava querendo evitar concatenar strings, mas se não tem jeito. rs

Andei lendo a documentação do JPA 2.0, e é possível setar um array para casos como esse no IN.Eu fiz um teste aqui e realmente funcionou.

Vou ver se adoto o JPA 2.0 no meu projeto.

Obrigado pela ajuda pessoal.

[/quote]

Funcionou, legal! Cola aí pra eu ver como ficou.