2016-08-05 19 views
0

I db gemäß den folgenden Einheiten zusammen:Android greenDao speichern Einheit mit Bezug

Entity image = schema.addEntity("Image"); 
image.setTableName("Images"); 
image.addStringProperty("id").primaryKey(); 
image.addStringProperty("size128"); 
image.addStringProperty("size320"); 


Entity user = schema.addEntity("User"); 
user.setTableName("Users"); 
user.addStringProperty("id").primaryKey(); 
user.addStringProperty("fullName"); 
Property userImageIdProperty = user.addStringProperty("imageId").getProperty(); 
user.addToOne(image, userImageIdProperty); 

Wenn ich versuche, neue Benutzer hinzuzufügen, das Bild wird nicht gespeichert.

Image image = new Image(); 
User player = new User(); 
player.setId(advisorClient.getId()); 
player.setFullName(advisorClient.getFullName()); 

if (advisorClient.getAvatar() != null) { 
    image.setId(advisorClient.getAvatar().getId()); 
    image.setSize128(advisorClient.getAvatar().getW128()); 
    image.setSize320(advisorClient.getAvatar().getW320()); 
    player.setImage(image); 
} 
daoSession.getUserDao().insertOrReplace(user); 

Ich speichere es falsch?

Antwort

0

Sie müssen das Bild wie mit dem Benutzer in die Datenbank einfügen.

Image image = new Image(); 
User player = new User(); 
player.setId(advisorClient.getId()); 
player.setFullName(advisorClient.getFullName()); 

if (advisorClient.getAvatar() != null) { 
    image.setId(advisorClient.getAvatar().getId()); 
    image.setSize128(advisorClient.getAvatar().getW128()); 
    image.setSize320(advisorClient.getAvatar().getW320()); 
    player.setImage(image); 

    daoSession.getImageDao().insertOrReplace(image); 
} 

daoSession.getUserDao().insertOrReplace(user);