Bonjour,

Avec Spring batch, on peut préciser qu'on veut commiter un chunk avec l'attribut "commit-interval" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<job id="">
  <step id="">
    <tasklet>
      <chunk reader="" writer="" commit-interval="15" />
    </tasklet>
  </step>
</job>
Dans cet exemple je vais commiter tous les 15 items traités. mais je vais traiter chaque item un par un.

Or mon besoin, ce serait de traiter les 15 item d'un seul coup.

En fait (pour explication) le traitement d'un item fait beaucoup de select en base pour avoir des valeurs de calcul. Si je lance mes traitement un par un, je vais faire les nombreux select à chaque fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select foo from footable where id=1 // ici 1=l'id de l'item
Mon idée c'est de faire les select d'un seul coup avec mes 15 id (correspondant aux 15 item).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select foo from footable where id in (1,2,3..., 15)
Mon reader m'envoie une liste de 100000 id trouvés en base. Ensuite mon writer doit traiter les id.

Mais comment faire ?