我正在使用 greenDao,我需要从几个类似于左连接功能的表中提取数据。这是我的模式生成器的引用:
private static void genRetailers(Schema schema) {
// create retailer entity
Entity retailerEntity = schema.addEntity("Retailer");
retailerEntity.addIdProperty().notNull();
retailerEntity.addStringProperty("title");
Entity shopEntity = schema.addEntity("Shop");
shopEntity.addIdProperty().notNull();
shopEntity.addStringProperty("address");
Property retailerId = shopEntity.addLongProperty("retailerId")
.getProperty();
// (1) Retailer < - > (*) Shop
retailerEntity.addToMany(shopEntity, retailerId);
}
当我这样做时:
return (ArrayList<Retailer>) mDaoSession.getRetailerDao()
.queryBuilder().list();
我只获取零售商表本身的内容,但我还需要 Shop 实体值,这些值为 null。只有在我调用getShops()
之后,实体才会被填充。我需要在第一次查询时直接填充实体。怎么做?
谢谢。
使用 queryDeep 方法:
return mDaoSession.getRetailerDao().queryDeep(null);