4

我有 2 个对象,父母持有孩子名单:

@Entity
public class Parent {

    @Backlink
    public ToMany<Child> children;
    ...
}

@Entity
public class Child {

    ToOne<Parent> parent;
    ...
}

然后我在 ToMany 上调用 size()

parent.children.size()

我得到了以下我无法理解的崩溃:

Caused by java.lang.IllegalStateException
ToOne object is null inside ...Child
io.objectbox.Cursor.nativeGetBacklinkEntities (Cursor.java)
io.objectbox.Cursor.getBacklinkEntities (Cursor.java:279)
io.objectbox.Box.internalGetBacklinkEntities (Box.java:623)
io.objectbox.relation.ToMany.ensureEntities (ToMany.java:172)
io.objectbox.relation.ToMany.size (ToMany.java:395)

看起来父母正在查看孩子的列表,并为每个孩子检查到父母的链接。它崩溃了,因为这个链接是空的。我不明白 ObjectBox 是如何处理这种情况的。有任何想法吗?

4

1 回答 1

4

也许是因为您没有编写No-arg constructor。所以 gradle 不会自动初始化一对一和多对多关系。

正如坠机所说

ToOne object is null inside ...
于 2018-01-22T08:05:09.150 回答