Bonjour, je décris mon but de batch pour m'aider un peu à mieux faire. C'est mon premier batch à développer.

Une table personne ( numDoss , reference ,nom , prenom , age )
Une table DonneesExtras ( numDoss , cdpays ,type , attachement )
Une table generationIdenfiant ( numDoss , reference , identifiant , dateCreation , dateGenFichier)


Le but est de récupérer les personnes qui n'ont pas une référence dans la table DonneesExtras , suivant une règle on va générer identifiant
ces données seront saisies dans la troisième table ainsi dans un fichier txt
Il faut aussi vérifier si l'une de ces personne s'est déjà créé un identifiant
numDoss,reference ,identifiant,dateCreation,dateGenFichier

Les personnes identifiés depuis cette requête
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
select distinct PERSON.NUDOSS, PERSON.matcle from public.PERSON AS PERSON
where not exists 
(select 1 from public.DonneesExtras AID
where  PERSON.NUDOSS = AID.nudoss 
and  AID.CDPAYS = 'FRA'
and AID.type = 'Hui'
)
and not exists (
select 1
from generationIdenfiant AS GEN
where PERSON.NUDOSS = GEN.NUDOSS
pour commencer , j'ai créé mon objet entity GenerationIdentifiant avec les attributs renseignés.
Ainsi, j'ai créé cette interface de Persistance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
         * Recupère l'ensemble des agents qui devront être traités
         **/
	List < GenerationIdentifiants > recupererLesDonnees(List < Long > numDossPerson);
 
	/**
         * Recupère la liste des numdoss Personnes à traiter
         **/
	List < Long > listPersonnes();
 
	/**
         * Recupère la liste des Personne à générer dans le fichier generation  identifiants
         **/
	List < Long > listNumdossPersonnesAGenerer();
 
	/**
         * Recupère l'ensemble des agents qui devront être générés dans le fichier  
         **/
	List < GenerationIdentifiants > listPersonnesAGenerer(List < Long > idsPersonnes);
 
	/**
         * Insertion dans la table cible
         **/
	void merger(List < GenerationIdentifiants > annuaireIdentifiantsListe);
 
	/**
         * Vérifier la presence du fichier pour remplacer avec le nouveau
         *
         * @throws FileNotFoundException
         */
	boolean verifierPresenceFichier(String cheminFichier) throws FileNotFoundException;

Dans l’implémentation de cette classe je fais appel au JDBCTemplate pour mes requêtes en nativeQuery
après, il faut je m'occupe de service qui contiendra les listener + writer + reader etc..
Qu'en pensez-vous, s'il vous plait ?