java - spring mongo存储库无法转换带有字段数组类型的对象
问题描述
我有一个 mongo 集合
{
"_id": "someId",
"data": [
{
"field1": "value1",
"field2": "value2",
"field3": "value3"
},
{
"field1": "value1",
"field2": "value2",
"field3": "value3"
},
]
}
和带有存储库的 Spring Boot 2 应用程序
@Repository
public interface MyRepository extends MongoRepository<MyEntity, String> {
MyEntity findByName(String myEntityName);
}
和实体
@Data
@NoArgsConstructor
public class MyEntity {
@Id
private String name;
private HashMap data;
public MyEntity (String name, JsonNode data) {
this.name = name;
this.data = CommonUtils.convertToHashMap(data);
}
public void setData(JsonNode data) {
this.data = CommonUtils.convertToHashMap(data);
}
}
当我调用 myRepository.findByName(name); 我犯了错误:
Failed to convert from type [java.util.ArrayList<?>] to type [java.util.HashMap<?, ?>]
如何解决这个问题?在其他文档中,我有身份字段,但没有数组,字段类型是对象,没关系。我知道从 arrayList 到 hashMap 看起来很奇怪,但我不知道如何编辑实体或存储库或 mongo 文档。请帮忙。
PS对不起英语不好
解决方案
推荐阅读
- ruby-on-rails - 活动管理导轨中的代码可重用性问题
- java - 在 Windows 上构建 maven 期间无法执行 .sh 文件(CreateProcess 错误=193,%1 不是有效的 Win32 应用程序)
- php - ckeditor 在创建帖子时工作正常,但在编辑帖子时丢失
- scala - 火花数与拍摄和长度
- log4j - 使用 Java +TestNG 或 Java + Log4j 配置 Reportportal
- frameworks - 物化:如何向输入字段提交按钮添加图标?
- django - 如何在 Django 中获取 Api Body 参数
- javascript - 使用 JavaScript 的成本计算器 - 高级
- javascript - 如何将 Actions 信息传递给组件、React + Redux?
- bash - bash if 语句没有按预期工作