Ich bin ziemlich neu in Android-Entwicklung im Allgemeinen, und ich habe noch nie einmal greenDAO verwendet. Aber nachdem ich viel Zeit mit der Arbeit an meiner Generator-Klasse verbracht habe (wo ich meine Entitäten modelliere), konnte ich endlich etwas produzieren, das dem auf GitHub gegebenen Beispiel ähnlich sah.greenDAO Generator gibt Konsole Fehler, die keinen Sinn macht
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
import de.greenrobot.daogenerator.ToMany;
public class simbalDAOgen {
public static void main(String[] args) throws Exception {
Schema schema = new Schema(1, "com.bkp.simbal"); //Schema(Int version, String package name)
addCBTrans(schema); //Add the entities to the schema
new DaoGenerator().generateAll(schema, "../Simbal/src-gen", "../Simbal/src-test"); //Generate DAO files
}
private static void addCBTrans(Schema schema){
Entity checkbook = schema.addEntity("Checkbook");
checkbook.addIdProperty();
checkbook.addStringProperty("name").notNull();
checkbook.addDateProperty("dateModified");
checkbook.addStringProperty("balance"); // Use a string property because BigDecimal type should be used for currency
Entity transaction = schema.addEntity("Transaction");
transaction.setTableName("TRANS"); // "TRANSACTION" is a reserved SQLite keyword
transaction.addIdProperty();
transaction.addStringProperty("name");
transaction.addStringProperty("category");
Property transDate = transaction.addDateProperty("date").getProperty();
transaction.addStringProperty("amount"); // Again use string for BigDecimal type
transaction.addStringProperty("notes");
Property cbName = transaction.addStringProperty("cb").notNull().getProperty(); //What checkbook the transaction is in
ToMany cbToTrans = checkbook.addToMany(transaction, cbName); //Actually ties the transactions to their correct checkbooks
cbToTrans.setName("Transactions");
cbToTrans.orderAsc(transDate);
}
}
Ich lief dann den Code als Java-Anwendung meiner DAO-Dateien zu generieren, wie nur die Dokumentation auf greenDAO sagt. Die Dateien wurden erfolgreich generiert, jedoch habe ich diese Zeile in der Konsole in Eclipse:
Warning to-one property type does not match target key type: ToMany 'Transactions' from Checkbook to Transaction
Ich bin wirklich nicht sicher, ob ich besorgt werden muß, da die Dateien generiert wurden. Aber was ich nicht verstehe ist, warum es eine "to-one" -Beziehung gibt, wenn ich eine "to-many" -Beziehung verwende, wie in meinem Code zu sehen ist. (Es kann viele Transaktionsentitäten in einer Scheckbuchsentität geben, und ich beabsichtige, den Namen jeder Scheckbuchsentität zu verwenden, um die Transaktionen mit ihr zu verknüpfen.)
Muss ich zurückgehen und einen Teil meines Codes reparieren? Bitte fragen Sie, wenn ich etwas klären muss, und danke für Ihre Zeit!
Sie haben Recht, es ist eine ziemlich obskure Nachricht. Danke für die Frage und die Antwort! – BeccaP