Mit der Version 1.5 wird das Handling nativer Queries innerhalb des Frameworks APersist vereinfacht.
Native Queries ließen sich bisher über die Methode execQuery des Interface Database ausführen. Als Rückgabewert bekam man ein Objekt vom Typ Cursor (android.database.Cursor) wodurch man gezwungen war, die darin gekapselte Daten manuell zu extrahieren.
Mit der neuen Version steht die Methode createQuery im Interface Database zur Verfügung.
Diese Methode liefert als Rückgabewert ein Objekt vom Typ NativeQuery (com.ng.apersist.query.NativeQuery). Für die Rückagbe der abgefragten Daten ist nun ein weiterer Aufruf notwendig. Hierbei kann der Entwickler aber entscheiden, ob anhand der abgefragten Daten ein Objekt der zur Query passenden Persistenzklasse (siehe @PersistenceClass) erzeugt werden soll.
Daher gibt es in der Klasse NativeQuery zwei Methode für die Ausgabe der Resultate:
public Collection<Object[]> getResult(); public <T> Collection<T> getResult(Class<T> resultType);
Die zweite Methode sorgt dafür. dass beim Aufruf ein Objekt des übergebenen Typs erzeugt wird.
Wichtig ist jedoch, dass die Query, die dafür notwendigen Informationen in der SELECT-Anweisung liefert und dass die Klasse T mit @PersistenceClass annotiert ist (siehe Link).
Links: