Generador greenDAO da error de consola que no tiene sentido

Soy bastante nuevo en el desarrollo de Android en general, y nunca he utilizado greenDAO. Pero después de pasar un montón de tiempo trabajando en mi clase de generador (donde yo modelo mis entidades), finalmente fue capaz de producir algo que se parecía al ejemplo dado en GitHub.

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); } } 

Entonces corrí el código como una aplicación de Java para generar mis archivos DAO, al igual que la documentación sobre greenDAO dice. Los archivos se generaron correctamente, sin embargo, obtuve esta línea en la consola de Eclipse:

 Warning to-one property type does not match target key type: ToMany 'Transactions' from Checkbook to Transaction 

Realmente no estoy seguro si necesito estar preocupado desde que los archivos fueron generados. Pero lo que no entiendo es por qué hay mención de una relación "a-uno" cuando estoy usando una relación "a-muchos", como se puede ver en mi código. (Puede haber muchas entidades de transacciones en una entidad de talonarios de cheques, y tengo la intención de usar el nombre de cada libro de cheques para atar las transacciones a él).

¿Necesito volver atrás y arreglar una parte de mi código? Por favor pregunte si necesito aclarar cualquier cosa, y gracias por su tiempo!

Después de mirar los archivos generados por greenDAO, he encontrado la solución a mi problema. Me parece que el método addToMany () espera que una propiedad Long se le pase a ella y estaba usando una propiedad String. Así que cambié estas dos líneas en mi código de generador:

 Property cbName = transaction.addStringProperty("cb").notNull().getProperty(); ToMany cbToTrans = checkbook.addToMany(transaction, cbName); 

a esto:

 Property checkbookId = transaction.addLongProperty("checkbookId").notNull().getProperty(); ToMany cbToTrans = checkbook.addToMany(transaction, checkbookId); 

Que resolvió mi problema. Yo estaba bajo la impresión de que podía usar cualquier tipo de propiedad para atar las transacciones a la chequera, así que estaba tratando de usar el nombre de chequera.

Parece ser GreenDao sólo acepta tipo largo como clave extranjera

  • ¿Cómo saber todas las conexiones abiertas de la base de datos usando DAO verde ..?
  • ¿Por qué GreenDAO no soporta completamente el operador LIKE?
  • ¿Cómo carga todos los campos de una base de datos y ordeno el resultado después de una fila con GreenDao?
  • No se pudo asignar CursorWindow '/ pos-db' de tamaño 2097152 debido a error -24
  • Manera correcta de manejar Bidireccional 1: m en Green-DAO
  • GreenDao soporta restricciones únicas en múltiples columnas
  • GreenDao clave primaria en múltiples columnas
  • Comprender la eliminación y eliminación de relaciones en greenDao
  • Sólo con Proguard: No se pudo init DaoConfig => ArrayIndexOutOfBoundsException
  • Entidad Greendao cuando se serializa utilizando GSON no contiene entidad relacionada en Generated JSON cadena
  • Cómo usar LoaderManager con Green-DAO
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.