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
pour commencer , j'ai créé mon objet entity GenerationIdentifiant avec les attributs renseignés.
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
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 ?
Partager