如何使用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生成代码item
和category
都是实体):
Property IdProperty = item.addLongProperty("categoryId").getProperty();
item.addToOne(category, IdProperty);
我加入了发电机码您的评论后,可你看看,看看,如果我这样做请正确的方式。谢谢 –
是的,你的代码看起来不错。生成后,Item项目实体将拥有一个具有getter和setter的Category类成员。 –
是的,它按预期工作。谢谢! –