2013-08-22 2 views
1

다음은 내 스키마 생성 코드입니다. 두 변수 (storeIdForSurvey & questionIdForAnswer)는 모델 클래스 (설문 조사 & 질문)에 자동으로 생성되지 않지만 auto 생성 된 DAO 클래스 (SurveyDao & QuestionDao).greenDao 생성기가 자동 생성 클래스에서 특정 변수를 생성하지 않습니다.

개체 지향적 인 도메인 설명은 다음과 같습니다. 사용자 저장소, 매장 조사 설문 조사 설문 조사 FollowupItems, 설문 조사 범주, 범주 질문, 질문있다 역사, 질문에 대답이 있습니다.

private static void addUser(Schema schema) { 

    //User 

    Entity user = schema.addEntity("User"); 

    user.addIdProperty(); 

    user.addStringProperty("districtId"); 

    user.addStringProperty("employeeId"); 

    user.addStringProperty("name"); 

    user.addStringProperty("sessionToken"); 

    user.addStringProperty("userId"); 



    //Store 

    Entity store = schema.addEntity("Store"); 

    // foreign key 

    Property userIdForStore = store.addLongProperty("userIdForStore").getProperty(); 

    store.addToOne(user, userIdForStore); 

    user.addToMany(store, userIdForStore); 



    store.addIdProperty(); 

    store.addStringProperty("storeId"); 

    store.addStringProperty("address"); 

    store.addStringProperty("city"); 

    store.addStringProperty("storeName"); 

    store.addStringProperty("state"); 

    store.addStringProperty("zip"); 

    store.addStringProperty("storeManagerName"); 

    store.addBooleanProperty("isSurveyHistoryAvailable");  





    //Survey 

    Entity survey = schema.addEntity("Survey"); 

    //foreign key 

    Property storeIdForSurvey = survey.addLongProperty("storeIdForSurvey").getProperty(); 

    survey.addToOne(store, storeIdForSurvey); // one store can have one survey at a time 

    store.addToOne(survey, storeIdForSurvey); 



    survey.addIdProperty(); 

    survey.addStringProperty("surveyId"); 

    survey.addStringProperty("dmSignImagePath"); 

    survey.addStringProperty("dmSignImageName"); 

    survey.addStringProperty("smSignImagePath"); 

    survey.addStringProperty("smSignImageName"); 

    survey.addStringProperty("startlatitude"); 

    survey.addStringProperty("startlongitude"); 

    survey.addStringProperty("submitLatitude"); 

    survey.addStringProperty("submitLongitude"); 

    survey.addStringProperty("acknowledgedBy"); 

    survey.addStringProperty("deliveredBy"); 

    survey.addStringProperty("name"); 

    survey.addStringProperty("createdBy"); 

    survey.addStringProperty("description"); 

    survey.addStringProperty("storeId"); 

    survey.addStringProperty("districtManager"); 



    survey.addDateProperty("startDate"); 

    survey.addDateProperty("submitDate"); 

    survey.addDateProperty("syncDate"); 

    survey.addDateProperty("createdDate"); 

    survey.addDateProperty("actionItemAssignDate"); 

    survey.addDateProperty("actionItemDueDate"); 

    survey.addDoubleProperty("score"); 





    //FolloupItems 

    Entity followupItem = schema.addEntity("FollowupItem"); 



    //foreign key 

    Property surveyIdForFollowupItem = followupItem.addLongProperty("surveyIdForFollowupItem").getProperty(); 

    followupItem.addToOne(survey, surveyIdForFollowupItem); 

    survey.addToMany(followupItem, surveyIdForFollowupItem); 



    followupItem.addIdProperty(); 

    followupItem.addStringProperty("assignedTo"); 

    followupItem.addStringProperty("comment"); 

    followupItem.addStringProperty("photoName"); 

    followupItem.addStringProperty("photoURL"); 

    followupItem.addDateProperty("assignedDate"); 

    followupItem.addDateProperty("dueDate"); 

    followupItem.addDateProperty("expeireDate"); 





    //Category 



    Entity category = schema.addEntity("Category"); 



    //foreign key 

    Property surveyIdForCategory = category.addLongProperty("surveyIdForCategory").getProperty(); 

    category.addToOne(survey, surveyIdForCategory); 

    survey.addToMany(category, surveyIdForCategory); 



    category.addIdProperty(); 

    category.addStringProperty("categoryId"); 

    category.addStringProperty("name"); 

    category.addStringProperty("weight"); 

    category.addStringProperty("surveyId"); 

    category.addDoubleProperty("totalScore"); 

    category.addIntProperty("sortOrder"); 

    category.addBooleanProperty("completionStatus"); 

    category.addBooleanProperty("hasActionItem"); 



    //Question 

     Entity question = schema.addEntity("Question"); 



     //foreign key 

     Property categoryIdForQuestion = question.addLongProperty("categoryIdForQuestion").getProperty(); 

     question.addToOne(category, categoryIdForQuestion); 

     category.addToMany(question, categoryIdForQuestion); 



     question.addIdProperty(); 

     question.addStringProperty("questionId"); 

     question.addDateProperty("startDate"); 

     question.addDateProperty("endDate"); 

     question.addStringProperty("statement"); 

     question.addStringProperty("type"); 

     question.addStringProperty("weight"); 

     question.addStringProperty("surveyCategoryName"); 

     question.addIntProperty("displayOrder"); 

     question.addBooleanProperty("naFlag"); 

     question.addBooleanProperty("isRequired"); 



     //Question History 

    Entity questionHistory = schema.addEntity("questionHistory"); 



    //foreign key 

    Property questionIdForQuestionHistory = questionHistory.addLongProperty("questionIdForQuestionHistory").getProperty(); 

    questionHistory.addToOne(store, questionIdForQuestionHistory); 

    question.addToMany(questionHistory, questionIdForQuestionHistory); 



    questionHistory.addIdProperty(); 

    questionHistory.addStringProperty("questionId"); 

    questionHistory.addStringProperty("secondLastHistory"); 

    questionHistory.addStringProperty("lastHistory"); 





     //Answer 

     Entity answer = schema.addEntity("Answer"); 



     //foreign key 

     Property questionIdForAnswer = answer.addLongProperty("questionIdForAnswer").getProperty(); 

     question.addToOne(answer, questionIdForAnswer); 

     answer.addToOne(question, questionIdForAnswer); 



     answer.addIdProperty(); 

     answer.addStringProperty("projectType"); 

     answer.addStringProperty("assignedTo"); 

     answer.addStringProperty("comment"); 

     answer.addStringProperty("photoUrl"); 

     answer.addStringProperty("photoNmae"); 

     answer.addStringProperty("selectedOption"); 

     answer.addDateProperty("assignedDate"); 

     answer.addDateProperty("dueDate"); 

     answer.addDateProperty("expireDate"); 

     answer.addDoubleProperty("score"); 



    } 

답변

2

조심스럽게 설명서를 읽어 보시기 바랍니다 :

public ToOne addToOne(Entity target, Property fkProperty) 

(이 법인에 속하는) 지정된 주어진 외래 키 속성을 사용하여 주어진 목표 엔티티에 일 관계를 추가합니다.

Property storeIdForSurvey = survey.addLongProperty("storeIdForSurvey").getProperty(); 
survey.addToOne(store, storeIdForSurvey); 

하지만 속성 storeIdForSurvey는 엔티티 저장소의 구성원이 아닌 때문에 다음 문이 올바르지 않습니다 :이 사용하는

store.addToOne(survey, storeIdForSurvey); 

시도

이것은 다음과 같은 문장이 올바른 의미 성명 대신

store.addToOneWithoutProperty("Survey", survey, "storeIdForSurvey"); 
+0

, 고마워요. –

+0

또 다른 한가지는, 설문 조사가 questionList를 가지고 있다고 가정합시다. setQuestionList (...)와 같은 자동 생성 함수가 없으므로 어떻게 questionList를 업데이트 할 수 있습니까? –

+0

동일하거나 관련이있는 다른 사람들이 그것을 찾을 수 있고 두 번째 질문 할 필요가 없도록 새로운 질문을 적어주십시오. 새 질문의 소스 코드를 관련 항목 (설문 조사 및 questionList와이 두 관계)으로 줄이십시오. 다음날 새로운 greendao-questions를 찾을 것입니다. – AlexS

관련 문제