我有一个顶级元素,我保存到数据库,它有几个外来元素,如下所示:
@DatabaseTable
public class Parent {
@DatabaseField(id = true, index = true)
public Integer id;
@DatabaseField(foreign = true)
public ChildA a;
}
@DatabaseTable
public class ChildA {
DatabaseField(generatedId = true, index = true)
public Integer id;
@DatabaseField
public boolean something;
}
假设已经在数据库中创建了这些。现在我想更新它们。调用parentDao.update(parent)
会更新吗?或者我是否还需要手动更新孩子?
答案 0 :(得分:7)
简短的回答是:
不,它不会同时更新
异物不是代理对象,因此ORMLite无法确定子对象是否已被修改且需要更新。因此,如果您同时更改Parent
和ChildA
对象,则必须执行以下操作:
childADao.update(parent.a);
parentDao.update(parent);
显然,如果您在父级上设置 new ChildA,那么它将在父表中更新此新ID。