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:
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.