Ich brauche einen Hinweis auf eine Baumdarstellung mit einer Entität mit dem ORM GREENDAO definiert.Greendao Tree Entity-Implementierung: Eltern und Kinder aus der gleichen Entität, kompiliert nicht
Tatsächlich kann ich die DAO-Dateien mit meinen reflexiven Eigenschaften nicht erzeugen. Ich habe versucht, einen einfachen Baum von KATEGORIEN zu implementieren.
Die Kategorie 1 kann eine Kategorie 0 als Eltern haben und die Kategorie 1 kann auch mehrere Kategorien als Kinder haben. Also zwei Fremdschlüssel, die auf die gleiche Entitätskategorie wie Quelle und Ziel verweisen.
Ich versuchte den Code, den greundao auf ihrer Website vorschlagen, um eine Tree-Entity zu erstellen, siehe Section "Modelling Tree Relations (Example)" on the page.
Mein problematischen Code:
Entity categories = schema.addEntity("CATEGORIES");
categories.addIdProperty().primaryKey();
Property parentId= categories.addLongProperty("parentId").notNull().getProperty();
ToOne ParentCat = categories.addToOne(categories, parentId);
ParentCat.setName("parentId");
Property childrenId= categories.addLongProperty("childrenId").notNull().getProperty();
ToMany ChildrenCat = categories.addToMany(categories, childrenId);
ChildrenCat.setName("children");
Und ich habe Thesen bekam Ausnahmen vom Compiler:
greenDAO Generator
Copyright 2011-2015 Markus Junginger, greenrobot.de. Licensed under GPL V3.
This program comes with ABSOLUTELY NO WARRANTY
*Exception in thread "main" java.lang.RuntimeException: Currently only single FK columns are supported: ToOne 'parentId' from CATEGORIES to CATEGORIES
at de.greenrobot.daogenerator.ToOne.init3ndPass(ToOne.java:91)
at de.greenrobot.daogenerator.Entity.init3rdPassRelations(Entity.java:603)
at de.greenrobot.daogenerator.Entity.init3rdPass(Entity.java:596)
at de.greenrobot.daogenerator.Schema.init3rdPass(Schema.java:185)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:91)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:79)
at Apptree_DAO_Generator.main(Apptree_DAO_Generator.java:13)*
oder
*Exception in thread "main" java.lang.RuntimeException: Source properties do not match target properties: ToMany 'children' from CATEGORIES to CATEGORIES
at de.greenrobot.daogenerator.ToMany.init2ndPass(ToMany.java:59)
at de.greenrobot.daogenerator.Entity.init2ndPass(Entity.java:517)
at de.greenrobot.daogenerator.Schema.init2ndPass(Schema.java:179)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:90)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:79)
at Apptree_DAO_Generator.main(Apptree_DAO_Generator.java:13)*
Also, ein Fremdschlüssel aus und demselben Entitätstabelle scheint problematisch zu sein. Gibt es einen anderen Weg, es zu tun?
Danke Mann, es ist eine Weile für jetzt ... Schließlich lasse ich Greendao und ActiveAndroid stattdessen verwenden ... Danke für Ihre hilf trotzdem – Loturno