我有一个客户的数据库,它有一个集合,其中文档字段可以在彼此之间变化。我可以依赖一些常量字段,但其余部分 - 我无法缩小字段列表,因为客户希望解决方案是动态的。 我的问题是 - 我可以以某种方式实现一个通用映射,它可以使用Spring Data返回一个文档字段的地图吗?
编辑:
感谢您的提示。我尝试使用实体获取通用对象(希望我能够将其转换为映射):
@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。
答案 0 :(得分:1)
您可以使用Map作为动态属性,如下所示。这是你在找什么?
@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;
}