我是android和ormlite的新手,我创建了一对多关系的数据库CRUD操作。问题是我无法将父类中的Collection数据保存到子集合数据到数据库中。这是我的代码:
(家长班)
@DatabaseTable
public class Schedule implements Serializable {
private static final long serialVersionUID = 1L;
@DatabaseField(generatedId = true)
public int id;
@DatabaseField
public Date date;
@DatabaseField
public String patient;
@DatabaseField
public String room;
@ForeignCollectionField(eager = false)
public Collection<Task> tasks = new ArrayList<Task>();
public Schedule() {
}
}
(儿童班)
@DatabaseTable
public class Task implements Serializable {
private static final long serialVersionUID = 1L;
@DatabaseField(generatedId = true)
public int id;
@DatabaseField
public Date time;
@DatabaseField
public boolean done;
@DatabaseField
public String note;
@DatabaseField(foreign=true,foreignAutoRefresh=true)
public Schedule schedule = new Schedule();
public Task() {
}
}
当我使用集合(任务)保存数据(Schedule类)时,它不保存集合。我错过了什么吗? 感谢。
答案 0 :(得分:0)
当我使用集合(任务)保存数据(Schedule类)时,它不保存集合。我错过了什么吗?
因此,ORMLite没有简单的方法可以知道您的任务集合尚未插入到数据库中。如果您需要创建它们,则应自行执行此操作或使用以下命令初始化tasks
字段:
parentDao.assignEmptyForeignCollection(parent, "tasks");
这会将您的tasks
字段转换为外部集合,因此对它的任何add(...)
调用也会添加到数据库中。