pureQuery Runtime automatise la création et le remplissage
d'objets Java qui renvoient
des résultats à partir de requêtes SQL contenant des jointures de table. Un ensemble de
beans imbriqués représentent les données renvoyées à partir de la requête SQL.
La hiérarchie des beans duplique la structure relationnelle
des tables et des données dans la base de données. pureQuery Runtime gère aussi
les données à partir de 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.
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 issues 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é.