现在有表 “TABLE” 表中分别有 ObjectId、Status、Type 三个字段

我的代码是这样的:

 try {
                        AVObject object = new AVObject("TABLE");
                        object.put("Status", -1);
                        object.put("Type ", 5);
                        AVSaveOption option = new AVSaveOption();
                        AVQuery<AVObject> query = new AVQuery<>("TABLE");
                        query.whereEqualTo("ObjectId", "aaaaaaa");
                        option.query(query);
                        object.save(option);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

官方文档在“保存选项” 保存选项 一节中这样说:

当 query 中的条件满足后,对象才能被更新,否则系统会放弃更新,并返回错误码 305。

通过 query 指定的条件仅对已存在的对象生效,如果用于保存新对象,则不生效。

按照官方文档中的说法应该是更新 ObjectId 为 aaaaaaa 条目才对啊,但是执行上面的代码却是直接插入一条新的

是我的代码哪里有问题吗?

版本是:Android avoscloud-sdk:v4.6.4

======================更新==================================
这样写是成功的:

AVQuery<AVObject> query = new AVQuery<>("TABLE");
                        query.whereEqualTo("ObjectId", "aaaaaa");
                        AVObject object = query.getFirst();
                        object.put("EventStatus", 123321);
                        object.put("EventType", 1234567);
                        AVSaveOption option = new AVSaveOption();
                        option.query(query);
                        option.setFetchWhenSave(true);
                        object.save(option);

直接 new AVObject 是不行的,需要根据条件先查询出那个 AVObject 才可以设置更新内容,再保存

更新一下万一有其他兄弟也遇到我这种情况