我有一个客户数据库,其中有一个集合,其中的文档字段可能彼此不同。有一些我可以依赖的恒定字段,但至于其余字段 - 我无法缩小字段列表,因为客户希望解决方案是动态的。 我的问题是 - 我能否以某种方式实现一个通用映射,该映射将返回(比方说)使用 Spring Data 的文档字段映射?
编辑:
谢谢你的提示。我尝试使用实体获取通用对象(希望能够将其转换为 map ):
@Document(collection = "Data")
public class DataEntity {
@Id
private String id;
private Object data;
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
但是使用 MongoRepository 通过 ID 获取对象会生成一个数据字段设置为 null 的对象。 我将 SpringBoot 1.3.1.RELEASE 与 spring-boot-starter-data-mongodb 1.3.1.RELEASE 一起使用。
最佳答案
您可以使用映射来获取动态属性,如下所示。这是您要找的吗?
@Document(collection = "computers")
public class Computer {
@Id
private String id;
@Field("name")
private String name;
//Other constant fields
@Field("properties")
private Map<String, Object> properties;
}
关于java - SpringMongo - 发现文档结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907579/