Bonjour,

Je suis en train de migrer une application Java utilisant Oracle vers une architecture multi-couches, utilisant Spring, JPA et Hibernate.

J'ai suivi un tutoriel de Serge Tahé (Persistance Java 5 par la pratique).
Mon application est un batch qui s'exécute chaque soir lancée par un ordonnanceur d'applications ($U) .

L'application est censée faire des rapprochements entre 2 tables sur des critères, s'il y a des lignes qui se rapprochent, les clés de ces 2 ligne sont mises dans une 3ème table avec la date.

Mon schéma est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Table1 : clé1, champs1..n
Table2 : clé2, champs1..n
Table3 : clé1, clé2, date
Avec l'outil Hibernate Tools j'ai réussi à générer les entités (classes Java correspondant aux tables, le package model), et les classes DAO (package DAO).

Seulement dans la couche métier, je n'arrive pas à l'imaginer.
  • Dans le tutoriel, une seule classe DAO est construite mais dans mon cas, Hibernate m'a généré autant de classes DAO qu'il y a de tables.
  • Dans la classe service un seul DAO est utilisé pour accéder à une seule table.

Dans mon cas, dans la classe service, faut-il que je crée plusieurs DAO pour accéder aux tables, ou un seul DAO me suffit ?

Comment peut-on faire le lien avec les différents DAO ?
Les requêtes SQL (JPQL) sont à mettre dans les classes DAO ou services ?

Merci d'avance pour votre aide.