http://wenda.bmob.cn/?/question/761
解决方法:
将多对多关系当做字符串数组来解决,也就是说用户A订阅的所有频道在数据库中是以对应频道的objectId字符串数组来存储的,查询时就可以使用数组查询方法里的 addWhereContains 来查询,我的查询方法:
BmobQuery<Channel> channelQuery = new BmobQuery<Channel>();
// channelQuery.include("subscribers");
// 正确方法,将多对多关联关系当做数组
channelQuery.addWhereContains("subscribers", mCurrentUser.getObjectId());
// 尝试过的错误方法之一,此方法只用于一对多或者多对一问题的查询方法
// channelQuery.addWhereRelatedTo("subscribers", new BmobPointer(mCurrentUser));
channelQuery.findObjects(mContext, new FindListener<Channel>() {
@Override
public void onSuccess(List<Channel> channels) {
for (Channel channel : channels) {
Log.i(TAG, channel.getName());
}
}
@Override
public void onError(int arg0, String arg1) {
}
});