Mehrere Beans bei der Verwendung von mit Annotationen versehenen Methoden zurückgeben

Wenn eine Anweisung SELECT mehrere Datenbankobjekte abfragt und Sie mit Annotationen versehene Methoden verwenden, können Sie die Daten aus jedem Objekt in eine separate Bean zurückgeben.

Vorgehensweise

Gehen Sie wie folgt vor, um mehrere Beans für eine einzelne Anweisung SELECT zurückzugeben, die mehrere Datenbankobjekte abfragt:

  1. Deklarieren Sie eine generische Klasse, die LinkedList oder ArrayList erweitert. Die Anzahl Objekte, die diese parametrisierte Objektgruppe enthält, definiert die Anzahl Beans, die aus Ihrer Abfrage zurückgegeben werden.
  2. Geben Sie den Rückgabetyp in der Signatur Ihrer Methode als ein Iterator- oder Listenobjekt an. Geben Sie die parametrisierte Objektgruppe als den Typ für dieses Objekt an.

Beispiel

Sie wollen die folgende Anweisung ausführen, die das Ergebnis aus der ersten Tabelle in eine Bean Contact und das Ergebnis aus der zweiten Tabelle in eine Bean Person zurückgibt.

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

Sie können die generische Klasse ContactAndPerson wie folgt definieren:

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

Sie wollen alle Paare der Beans Contact und Person in ein Iteratorobjekt stellen. Definieren Sie den Rückgabetyp daher wie folgt:

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

Feedback