Imbriquer une Unit Of Work (UOW) fils dans une Unit Of Work père permet de créer un lien entre les deux UOW. La validation de UOW fils ne valide pas les modifications dans la base de données, mais les retourne dans UOW père.
Ci-dessous un exemple de UOW imbriqués basé sur l'objet Adresse :
public static void testNestedUOW(DatabaseSession session) {
// Lire l'adresse n° 1 dans la base
Adresse a = new Adresse();
a.setNoAdresse(BigDecimal.
// Créer l'UOW père
UnitOfWork UOWPere = session.acquireUnitOfWork();
Adresse adresseOWRPere = (Adresse)UOWPere.readObject(a)
// Créer un premier UOW fils pour modifier la ville
UnitOfWork UOWFils1 = UOWPere.acquireUnitOfWork();
Adresse adresseUOWFils1 =
(Adresse)UOWFils1.
adresseUOWFils1.setVille("
// Retourner la modification au UOW père
UOWFils1.commit();
// Créer un deuxième UOW fils pour modifier l'adresse
UnitOfWork UOWFils2 = UOWPere.acquireUnitOfWork();
Adresse adresseUOWFils2 =
(Adresse)UOWFils2.
adresseUOWFils2.setAdresse("
// Retourner la modification au UOW père
UOWFils2.commit();
// UOW père retourne les deux modifications à la base de données
UOWPere.commit();
}
public static void testNestedUOW(DatabaseSession session) {
// Lire l'adresse n° 1 dans la base
Adresse a = new Adresse();
a.setNoAdresse(BigDecimal.
// Créer l'UOW père
UnitOfWork UOWPere = session.acquireUnitOfWork();
Adresse adresseOWRPere = (Adresse)UOWPere.readObject(a)
// Créer un premier UOW fils pour modifier la ville
UnitOfWork UOWFils1 = UOWPere.acquireUnitOfWork();
Adresse adresseUOWFils1 =
(Adresse)UOWFils1.
adresseUOWFils1.setVille("
// Retourner la modification au UOW père
UOWFils1.commit();
// Créer un deuxième UOW fils pour modifier l'adresse
UnitOfWork UOWFils2 = UOWPere.acquireUnitOfWork();
Adresse adresseUOWFils2 =
(Adresse)UOWFils2.
adresseUOWFils2.setAdresse("
// Retourner la modification au UOW père
UOWFils2.commit();
// UOW père retourne les deux modifications à la base de données
UOWPere.commit();
}

Commentaires