2016-06-17 16 views
0

Ich habe zwei Klassen, Benutzer und Artwork. Der Nutzer kann eine Sammlung von Artworks haben. Alles funktioniert wie erwartet, ich kann die Objekte aus der db speichern und abrufen, aber ich verstehe nicht, wie sie gesammelt werden.Wie speichert ORMLite ForeignCollections in der Datenbank?

Ich erstelle einige Kunstwerke, füge sie der Sammlung hinzu und setze die Sammlung in einem Benutzer. Wenn die .db Überprüfung (.schema) ich diese:

CREATE TABLE android_metadata (locale TEXT); 
CREATE TABLE `user` (`id` INTEGER PRIMARY KEY AUTOINCREMENT , `name` VARCHAR , `artwork_id` BIGINT); 
CREATE TABLE `artwork` (`id` INTEGER PRIMARY KEY AUTOINCREMENT , `name` VARCHAR , `file` VARCHAR , `user_id` BIGINT); 

Objekte korrekt eingesetzt werden und für sie die Abfrage funktioniert wie Charme. Was ich wirklich nicht verstehe ist, warum ich kein Feld für die Sammlung habe.

Antwort

1

Benutzer und Artwork Entitäten hat one-to-many Beziehung. In relationalen Datenbanken ist dies als Artwork mit einer Spalte modelliert, die in diesem Fall auf User (user_id) verweist. Um Sammlung von Artwork im Zusammenhang mit User (id), ormlite Abfrage ausführt, die in etwa wie folgt aussieht:

select * from Artwork where user_id = id