【发布时间】:2016-06-17 10:39:06
【问题描述】:
我有两个类,User 和 Artwork。用户可以拥有一组艺术品。一切都按预期工作,我可以从数据库中存储和检索对象,但我不明白它们的集合是如何持久化的。
public class User {
@DatabaseField(allowGeneratedIdInsert = true, generatedId = true, unique = true)
Long id;
@DatabaseField
String name;
@DatabaseField(columnName = "artwork_id", foreign = true, foreignAutoCreate = true, foreignAutoRefresh = true)
Artwork masterPiece;
@ForeignCollectionField(eager = true)
Collection<Artwork> artworks;
}
public class Artwork {
@DatabaseField(allowGeneratedIdInsert = true, generatedId = true, unique = true)
Long id;
@DatabaseField
String name;
@DatabaseField
String file;
@DatabaseField(columnName = "user_id", foreign = true, foreignAutoCreate = true, foreignAutoRefresh = true)
User owner;
}
我创建了一些艺术品,将它们添加到集合中并将集合设置在用户中。当检查 .db (.schema) 我得到这个:
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 );
对象被正确插入并且查询它们就像魅力一样。我真正不明白的是为什么我没有收藏的字段。
【问题讨论】: