pureQuery Runtime
automatise la création et le remplissage d'objets Java™
qui renvoient le résultat des requêtes SQL contenant des jointures de table. Un ensemble de
beans imbriqués représente les données renvoyées par la requête SQL.
La hiérarchie des beans représente
la structure relationnelle
des tables et des données dans la base de données. En outre, pureQuery Runtime
gère les données renvoyées par la requête. Dans la plupart des cas, il génère les interfaces
ResultHandlers et RowHandlers for DAO (Data Access Object) requises et les méthodes intégrées.
Pour donner un exemple simple, supposons qu'une requête SQL effectue une jointure entre une table Department et une table Employee
pour l'ID employé figurant dans ces deux tables. Vous pouvez
développer des classes Java avec des annotations
pureQuery
qui créent un ensemble de beans imbriqués organisant les informations sur les employés
par service :
- Chaque bean Department contient des informations pour un service et
chaque bean Employee contient des informations pour un employé.
- Chaque bean Employee est l'enfant d'un bean Department.
- Chaque bean Department contient une liste des beans Employee pour le
service correspondant.
Avec pureQuery Runtime, les beans imbriqués peuvent renvoyer des données avec des relations "un à plusieurs"
et "un à un". Ils peuvent aussi simuler des relations "plusieurs à plusieurs" et "plusieurs à un".
pureQuery Runtime prend en charge la génération automatique d'une structure de
beans imbriqués à partir des résultats d'une requête SQL qui joint des données de plusieurs
tables. Les données de chaque ligne correspondante dans chaque
table jointe sont combinées dans une ligne de données unique de l'objet ResultSet. En autorisant un bean à contenir une liste java.util.List contenant d'autres beans, un
bean peut contenir plusieurs lignes de données issues de l'objet ResultSet. L'imbrication conserve la nature hiérarchique des données dans plusieurs
tables et implémente une relation un à plusieurs. Le fait d'autoriser un bean
à contenir un autre bean simplifie la disposition d'un bean et implémente une relation
un à un.
Des relations plusieurs à plusieurs peuvent être simulées avec plusieurs relations un à plusieurs
et des relations plusieurs à un peuvent être simulées avec plusieurs
relations un à un.
Vous pouvez utiliser une classe de bean avec plusieurs instructions SQL. Le
scénario suivant décrit comment les mêmes beans peuvent être utilisés dans différentes situations :
- Le bean Department peut contenir une liste de beans Employee pour ce
Department et une liste de beans Project pour ce Department.
- Le bean Employee peut contenir une liste de beans Projects appartenant
à cet employé et une liste de beans Activity auxquels l'Employee
participe.
- Le bean Project peut contenir une liste de beans Employee pour les
employés travaillant sur ce projet. Il peut aussi contenir un seul bean
Employee contenant des informations sur le responsable du projet. Il peut également contenir
une liste de beans Activity décrivant toutes les activités
du projet.
- Le bean Activity peut contenir des informations sur un projet et une
liste de projets dans lesquels le bean Activity est utilisé.
- La réutilisation de ces beans provient de différentes requêtes SQL contenant
des informations différentes dans ResultSet. Vous trouverez ci-après des exemples de ces requêtes SQL :
- La requête SQL Join qui joint les colonnes de la table Department, les colonnes de la table Employee et les colonnes de la table Project. En utilisant le bean Department comme bean parent,
vous obtenez un ou plusieurs beans Department. Chaque bean Department
contient une liste de tous les employés de ce service et une autre
liste de projets de ce service.
- La requête SQL Join qui joint les colonnes de la table Employee, les colonnes de la table Project et les colonnes de la table Activity. En utilisant le bean Employee comme
bean parent, vous obtenez un ou plusieurs beans Employee. Chaque
bean Employee contient une liste de projets pour cet employé et une liste de beans Activity
auxquels l'employé participe.
- La requête SQL Join qui joint les colonnes de la table Project et les colonnes de la table Activity. En utilisant le bean Project comme bean parent, vous obtenez
un ou plusieurs beans Project. Chaque bean Project contient une liste des beans Activity d'un projet.
- La requête SQL Join qui joint les colonnes de la table Activity et les colonnes de la table Project. En utilisant le bean Activity comme bean parent, vous obtenez
un ou plusieurs beans Activity. Chaque bean Activity contient une liste des beans
Project dans lesquels Activity est utilisé.