Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t在Morphia中修改@Embedded List_Java_Mongodb_Morphia - Fatal编程技术网

Java Can';t在Morphia中修改@Embedded List

Java Can';t在Morphia中修改@Embedded List,java,mongodb,morphia,Java,Mongodb,Morphia,我拥有以下实体: @实体(“用户”) 公共类用户模型{ @身份证 私有ObjectId; 私有字符串用户标识; 私有字符串前缀; 私人名单; 私人名单提醒; TodoList对象如下所示: @Embedded 公营托达利斯特{ 私有字符串名称; 私人清单待办事项; 私人名单已完成; 我要做的是将一个字符串从todos ArrayList移动到todos ArrayList中的完整ArrayList, 以下是我如何做到这一点的: public void completeTodo(int-lis

我拥有以下实体:

@实体(“用户”)
公共类用户模型{
@身份证
私有ObjectId;
私有字符串用户标识;
私有字符串前缀;
私人名单;
私人名单提醒;
TodoList对象如下所示:

@Embedded
公营托达利斯特{
私有字符串名称;
私人清单待办事项;
私人名单已完成;
我要做的是将一个字符串从todos ArrayList移动到todos ArrayList中的完整ArrayList, 以下是我如何做到这一点的:

public void completeTodo(int-listIndex、int-todoIndex、UserModel-userData){
字符串todo=userData.getTodoLists().get(listIndex).getTodos().remove(todoIndex);
datastore.find(UserModel.class)
.filter(Filters.eq(“userID”,userData.getId()))
.update(UpdateOperators.set(“todoLists.”+listIndex+“.todos”、userData.GetToList().get(listIndex.getTodos())、UpdateOperators.push(“todoLists.”+listIndex+“.todos”、userData.GetToDoList().get(listIndex)
.execute();
}
这没有任何作用,我也不知道会出什么问题。另外,如果我只是修改完整的todo列表,将todo从todos ArrayList移动到完整的ArrayList,然后使用set-UpdateOperator,如下所示:

public void completeTodo(int-listIndex、int-todoIndex、UserModel-userData){
userData.getToDoList().get(listIndex).completeTodo(todoIndex);
datastore.find(UserModel.class)
.filter(Filters.eq(“userID”,userData.getId()))
.update(UpdateOperators.set(“todoLists.”+listIndex,userData.GetToList().get(listIndex)))
.execute();
}
它仍然不起作用,即使我记录了todo变量和userData,而且看起来都是正确的,我还是无法将其保存到DB中

我也试过:

public void completeTodo(int-listIndex、int-todoIndex、UserModel-userData){
字符串todo=userData.GetToDoList().get(listIndex).removeTodo(todoIndex);
System.out.println(todo);//此日志记录正确,因此至少push操作符应该可以工作
datastore.find(UserModel.class)
.filter(Filters.eq(“userID”,userData.getId()))
.update(UpdateOperators.set(“todoLists.”+listIndex+“.todos”、userData.GetToList().get(listIndex.getTodos())、UpdateOperators.push(“todoLists.”+listIndex+“.todos”、userData.GetToDoList().get(listIndex)
.execute();
}
其中removeTodo位于TodoList嵌入类内:

公共字符串removeTodo(int-todoIndex){
返回todos.remove(todoIndex);
}

我应该检查我的代码两次。看来userData.getId()不是数据库中用户的正确ID:/