public class User {
@DatabaseField(id = true)
private Integer user_id;
@DatabaseField
private String email;
@DatabaseField
private Integer firebase_id;
@DatabaseField
private String fullname;
@DatabaseField
private String photo_url;
@ForeignCollectionField
private LazyForeignCollection<Dream, Integer> dreams;
}
public class Dream {
@DatabaseField(id = true)
private Integer my_dream_id;
@DatabaseField
private String description_dream;
@DatabaseField
private ?? saveDataDream;
@DatabaseField
private String titleDream;
@DatabaseField(columnName = "user_user_id", foreign = true)
private User user;
}
然后,正如我所要求的那样
here
Join
查询结果
Dao<User, Integer> userDao = DaoManager.createDao(getConnectionSource(), User.class);
Dao<Dream, Integer> dreamDao = DaoManager.createDao(getConnectionSource(), Dream.class);
QueryBuilder<User, Integer> userQa= userDao.queryBuilder();
userQa.where().eq("firebaseId", 56789);
QueryBuilder<Dream, Integer> dreamQa = dreamDao.queryBuilder();
users = userQa.join(dreamQa).query();
然后你可以从用户的对象中访问梦境
users.get(i).getDreams()
iterator()
,如下所示:
CloseableIterator<Dream> itDream = users.get(id).getDreams().closeableIterator();
try {
while (itDream.hasNext()) {
Dream dream = itDream.next();
}
} finally {
try {
itDream.close();
} catch (IOException e) {
Log.e(TAG, "FAIL", e);
}
}