繁体   English   中英

Android greenDao与关系保存实体

[英]Android greenDao save entity with relation

我根据以下实体制作了数据库:

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);

当我尝试添加新用户时,不会存储图像。

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);

我以错误的方式存储它?

您必须像与用户​​一样将图像插入数据库中。

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM