ORMLite JOINs oder automatische Zuordnung von rawQuery

7

Ich bin auf der Suche nach einer Möglichkeit, eine Abfrage auszuführen, die ein JOIN erfordert. Gibt es eine Möglichkeit, dies in einer vorbereiteten Anweisung zu tun, oder ist die rawQuery die einzige Option, die ich habe. Wenn rawQuery die einzige Option ist, gibt es eine Möglichkeit, die zurückgegebenen Objekte automatisch den Objekten des implementierten Dao zuzuordnen.

Ich habe die Dokumente und Beispiele durchforstet, kann aber nichts finden, was mir erlaubt, das Ergebnis der Rohdatenbank einer ORM-Objektklasse zuzuordnen.

    
DanO 16.08.2012, 12:52
quelle

3 Antworten

15

ORMLite unterstützt einfache JOIN-Abfragen . Sie können dazu auch rohe Abfragen verwenden.

Sie können die Dao.getRawRowMapper() verwenden, um die Abfragen so zu ordnen, wie Sie sie gefunden haben, oder Sie können einen benutzerdefinierten Mapper erstellen. Die Dokumentation enthält den folgenden Beispielcode, der zeigt, wie Sie das String[] in Ihr Objekt mappen:

%Vor%     
Gray 20.08.2012, 19:12
quelle
8

Ich habe eine Möglichkeit gefunden, eine Ergebnismenge automatisch einem Modellobjekt zuzuordnen.

%Vor%

Der Schlüssel ist, den Zeilenmapper von Ihrem Objekt Dao mit getRawRowMapper() abzuziehen, das die Zuordnung für Sie übernimmt. Ich hoffe, das hilft jedem, der es findet.

Ich würde immer noch gerne die Möglichkeit haben, Joins innerhalb von QueryBuilder zu machen, aber bis das unterstützt wird, ist das meiner Meinung nach das nächstbeste.

    
DanO 20.08.2012 18:25
quelle
0

Rohe automatische Abfragezuordnung

Ich hatte Probleme beim Zuordnen von Feldern aus benutzerdefiniertem SELECT, die Spalten zurückgeben, die in keinem Tabellenmodell vorhanden sind. Also habe ich die benutzerdefinierte RawRowMapper erstellt, die Felder von der benutzerdefinierten Abfrage zum benutzerdefinierten Modell zuordnen kann. Dies ist nützlich, wenn Sie eine Abfrage mit Feldern haben, die keinem Tabellenmapping-Modell entsprechen.

Dies ist RowMapper , der die automatische Zuordnung von Abfragen durchführt:

%Vor%

Und hier ist die Verwendung :

%Vor%

Dadurch wird List<Model> mit zugeordneten Ergebniszeilen an Model zurückgegeben, wenn die Spaltennamen der Abfrage und @DatabaseField(columnName identisch sind

    
Lemberg 26.07.2016 09:47
quelle

Tags und Links