저는 일반적으로 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);
}
}
그런 다음 greenDAO의 문서에서와 같이 Java 응용 프로그램으로 코드를 실행하여 DAO 파일을 생성했습니다.
Warning to-one property type does not match target key type: ToMany 'Transactions' from Checkbook to Transaction
내가 정말 파일이 생성 된 이후 우려 할 필요가 있는지 확실하지 않습니다 : 파일이 성공적으로 생성 된, 그러나 나는 이클립스 콘솔에서이 줄을 얻었다. 그러나 내가 이해할 수없는 것은 필자의 코드에서 볼 수있는 것처럼 "to-many"관계를 사용할 때 "to-one"관계에 대한 언급이있는 이유이다. (수표 책 엔티티에는 많은 거래 엔티티가있을 수 있으며 각 수표 엔티티의 이름을 사용하여 트랜잭션을 연결하려고합니다.)
코드로 되돌아 가야합니까? 내가 무엇인가를 명확히해야하는지 물어보고, 시간 내 주셔서 감사합니다!
맞습니다. 꽤 이상한 메시지입니다. 질문과 답변 모두에 감사드립니다! – BeccaP