Retour de plusieurs beans lors de l'utilisation de méthodes annotées

Si une instruction SELECT interroge plusieurs objets de base de données et que vous utilisez des méthodes annotées, vous pouvez retourner les données de chaque objet dans un bean séparé.

Procédure

Pour retourner plusieurs beans pour une instruction SELECT unique interrogeant plusieurs objets de base de données :

  1. Déclarez une classe générique étendant LinkedList ou ArrayList. Le nombre d'objets que cette collection paramétrée contient définit le nombre de beans retournés de votre interrogation.
  2. Dans la signature de votre méthode, spécifiez le type de renvoi (objet Iterator ou List). Spécifiez la collection paramétrée comme le type de cet objet.

Exemple

Vous voulez exécuter cette instruction, en retournant le résultat de la première table dans un bean Contact et le résultat de la deuxième table dans un bean Person.

select CONTACTTABLE.IDNUMBER, PERSONTABLE.SSN from CONTACTTABLE, PERSONTABLE

Vous pouvez définir la classe générique ContactAndPerson comme suit :

public class ContactAndPerson<C, P> extends LinkedList{}

Vous voulez insérer toutes les paires des beans Contact et Person dans un objet Iterator. Vous devez donc définir le type de renvoi comme suit :

@Select(sql = "select CONTACTTABLE.IDNUMBER, PERSONTABLE.SSN from CONTACTTABLE, PERSONTABLE")  
Iterator<ContactAndPerson<Contact, Person>> selectFromContactPerson ();

Commentaires