2017-12-10 4 views
0

I 2 Objekte mit den Eltern haben eine Liste von Kindern halten:ObjectBox crash - java.lang.IllegalStateException TOONE Objekt ist null

@Entity 
public class Parent { 

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

und

@Entity 
public class Child { 

    ToOne<Parent> parent; 
    ... 
} 

Dann rufe ich Größe () auf der Tomany

parent.children.size() 

Und ich folgenden Absturz zu bekommen, die ich nicht verstehen kann:

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) 

Es sieht so aus, als ob der Elternteil sich die Liste der Kinder ansieht und für jeden die Verbindung zum Elternteil überprüft. Es stürzt ab, weil diese Verbindung null ist. Ich verstehe nicht, wie es ObjectBox schaffen würde, in eine solche Situation zu kommen. Irgendwelche Ideen?

Antwort

0

Vielleicht ist es, weil Sie nicht die No-Arg-Konstruktor geschrieben haben. So werden die To-One- und To-Many-Relationen nicht automatisch von Gradle initialisiert.

Als Crash sagte

ToOne object is null inside ... 
+0

..... und was ist die Lösung für dieses Problem? –

+0

add constructor: public xxx() {}, es funktioniert für mich – infiniteXyy