Я довольно новичок в разработке Android в целом, и я даже не использовал greenDAO. Но, потратив много времени на мой класс генератора (где я моделирую свои сущности), я, наконец, смог создать что-то похожее на пример, приведенный в GitHub.Генератор greenDAO дает ошибку консоли, которая не имеет смысла
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);
}
}
Я побежал код в виде Java-приложения для создания моих DAO файлов, так же, как документация по greenDAO говорит. Файлы были успешно созданы, однако я получил эту строку в консоли в Eclipse:
Warning to-one property type does not match target key type: ToMany 'Transactions' from Checkbook to Transaction
Я действительно не уверен, что мне нужно беспокоиться, так как были созданы файлы. Но я не понимаю, почему упоминается отношение «один к одному», когда я использую отношение «ко многим», как это видно из моего кода. (В объекте чековой книжки может быть много объектов транзакций, и я намерен использовать каждое имя сущностей чековой книжки для привязки к нему транзакций.)
Нужно ли мне возвращаться и исправлять часть моего кода? Пожалуйста, спросите, нужно ли мне что-то разъяснить, и спасибо за ваше время!
Вы правы, это довольно неясное сообщение. Спасибо вам за вопрос и ответ! – BeccaP