Pessoal, tenho uma coluna do tipo Integer no banco e gostaria de executar um select utilizando a cláusula IN para essa coluna.
o select seria algo do tipo:
Se eu entendi, vc tem uma lista não estática de valores.
Isso aqui não funciona?
select count(*) as total from tabela aut where aut.estadot in("aqui dentro você faz um loop pra colocar as interrogações de acordo com a lista.size()")
for (int i = 0; i < lista.size(); i++){
int j = i+1;
pstmt.setInt(j, lista.get(i));
}
pstmt.execute();
C
clone_zealot
A opção do Array é dependente de banco. Sei disso pq qndo pensei em usar isso, vi que no Oracle vc tem que criar o objeto oracle.sql.ARRAY no braço e colocar no PS.
A opção do IN com várias entradas TAMBÉM depende do banco. Tipo, no Oracle só podem ser colocador 1000 elementos no IN. Se for fazer algo assim, esteja preparado pra fazer algo assim:
Isso quer dizer que conforme a implementação do JPA o IN é substituído adequadamente ou não. Segundo o pessoal da Oracle, se você estiver usando o TopLink Essentials, eles não fazem isso.