- Encontrar o trecho que gerou o SQL
- Pooling de Statements
Voltando ao problema inicial, imagine uma lista de empresas, selecionamos várias empresas para atualizar um campo. Por baixo dos panos estamos criando uma lista (java.util.List provavelmente) e passando isso como parâmetro para o método correto do DAO. Dentro do DAO tem um loop que gera algo como isso: where id_empresa in (?, ?, ?, ?). Toda vez que o número de parâmetros muda, lá se vai o cache caso existir. Pela internet já encontrei várias soluções, algumas muito toscas como fazer vários métodos com um número pré-determinado, mas uma que me agradou (infelizmente eu perdi o link) era enviar apenas 1 parâmetro. Como? Esse parâmetro é para uma função: id_empresa in (string2arr(?)).
Achei a idéia bem interessante e caso não sua aplição deixe fazer isso, sugiro usar nativamente arrays: id_empresa = ANY (?). Não é tão compatível e ainda será necessário implementar a classe, mas acho que vale a pena essa solução.
1 comentários:
Boa Zé....
Ainda terei 25% do seu conhecimento em Postgres (nas coisas que não estão no manual) rsrsrsrs
Postar um comentário