如何使用greenDAO加载另一个对象内的对象?

问题描述:

我有这些实体:如何使用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"); 
    } 

} 

我做了你的答案后,请如果我做正确的方式来看看。谢谢。

您必须使用GreenDao Relations,将Item实体映射到Category实体。

这里有一个例子(其中在greenDAO生成代码itemcategory都是实体):

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

我加入了发电机码您的评论后,可你看看,看看,如果我这样做请正确的方式。谢谢 –

+0

是的,你的代码看起来不错。生成后,Item项目实体将拥有一个具有getter和setter的Category类成员。 –

+1

是的,它按预期工作。谢谢! –