1

以下は私のスキーマ生成コードです。2 つの変数 (storeIdForSurvey & questionIdForAnswer) はモデル クラス (Survey & Question) で自動生成されませんが、自動生成された dao クラス (SurveyDao & QuestionDao) には存在します。

ドメインのオブジェクト指向の説明は次のとおりです。ユーザーはストア、ストアは調査、調査はフォローアップアイテム、調査はカテゴリ、カテゴリは質問、質問は履歴、質問は回答です。

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



    }
4

1 に答える 1

2

ドキュメントを注意深く読んでください:

public ToOne addToOne(Entity target, Property fkProperty)

指定された外部キー プロパティ (このエンティティに属する) を使用して、指定されたターゲット エンティティに対 1 関係を追加します。

これは、次のステートメントが正しいことを意味します。

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

しかし、Property storeIdForSurvey はエンティティ ストアのメンバーではないため、次のステートメントは正しくありません。

store.addToOne(survey, storeIdForSurvey);

代わりに次のステートメントを使用してみてください。

store.addToOneWithoutProperty("Survey", survey, "storeIdForSurvey");
于 2013-08-28T19:36:09.133 に答える