在ormlite中保存一到多个集合用于android

时间:2013-12-03 10:54:36

标签: android ormlite

我是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类)时,它不保存集合。我错过了什么吗? 感谢。

1 个答案:

答案 0 :(得分:0)

  

当我使用集合(任务)保存数据(Schedule类)时,它不保存集合。我错过了什么吗?

因此,ORMLite没有简单的方法可以知道您的任务集合尚未插入到数据库中。如果您需要创建它们,则应自行执行此操作或使用以下命令初始化tasks字段:

parentDao.assignEmptyForeignCollection(parent, "tasks");

这会将您的tasks字段转换为外部集合,因此对它的任何add(...)调用也会添加到数据库中。