2016-05-14 63 views
1

我有這些實體:如何使用greenDAO加載另一個對象內的對象?

public class Category { 

    private Long id; 
    private String name; 
    private Integer color; 
} 

public class Item { 

    private Long id; 
    private String name; 
    private String groupType; 
    private Category category; 
} 

我應該如何建模greenDAO有項目對象中分類?

編輯:

生成器代碼:

public class GreenDaoGenerator { 

    public static final String DEFAULT_PACKAGE = "xxxxx"; 

    public static void main(String[] args) throws Exception { 
     Schema schema = new Schema(1, DEFAULT_PACKAGE + ".entity"); 
     schema.setDefaultJavaPackageDao(DEFAULT_PACKAGE + ".dao"); 

     addCategory(schema); 
     addItem(schema); 

     DaoGenerator daoGenerator = new DaoGenerator(); 
     daoGenerator.generateAll(schema, "Generated Files"); 
    } 

    private static void addItem(Schema schema) { 
     Entity entity = schema.addEntity("Item"); 
     entity.addIdProperty(); 
     entity.addStringProperty("Name"); 
     entity.addStringProperty("GroupType"); 
     Property IdProperty = entity.addLongProperty("categoryId").getProperty(); 
     entity.addToOne(schema.getEntities().get(0), IdProperty); 
    } 

    private static void addCategory(Schema schema) { 
     Entity entity = schema.addEntity("Category"); 
     entity.addIdProperty(); 
     entity.addStringProperty("Name"); 
     entity.addIntProperty("Color"); 
    } 

} 

我做了你的答案後,請如果我做正確的方式來看看。謝謝。

回答

1

您必須使用GreenDao Relations,將Item實體映射到Category實體。

這裏有一個例子(其中在greenDAO生成代碼itemcategory都是實體):

Property IdProperty = item.addLongProperty("categoryId").getProperty(); 
item.addToOne(category, IdProperty); 
+1

我加入了發電機碼您的評論後,可你看看,看看,如果我這樣做請正確的方式。謝謝 –

+0

是的,你的代碼看起來不錯。生成後,Item項目實體將擁有一個具有getter和setter的Category類成員。 –

+1

是的,它按預期工作。謝謝! –

相關問題