ORMLite外国会员更新

Ada*_*dam 4 java android ormlite

我有一个顶级元素,我保存到数据库,它有几个外来元素,如下所示:

@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;
}
Run Code Online (Sandbox Code Playgroud)

假设已经在数据库中创建了这些.现在我想更新它们.将呼叫parentDao.update(parent)更新两者?或者我是否还需要手动更新孩子?

Gra*_*ray 7

简短的回答是:

不,它不会同时更新

外部对象不是代理对象,因此ORMLite无法确定子对象是否已被修改且需要更新.因此,如果您更改了对象ParentChildA对象,那么您必须执行以下操作:

 childADao.update(parent.a);
 parentDao.update(parent);
Run Code Online (Sandbox Code Playgroud)

显然,如果在父级上设置一个新的 ChildA,那么它将在父表中更新这个新的id.