SpringMongo - 发现文档结构

时间:2016-04-28 07:05:52

标签: java spring mongodb spring-boot spring-data

我有一个客户的数据库,它有一个集合,其中文档字段可以在彼此之间变化。我可以依赖一些常量字段,但其余部分 - 我无法缩小字段列表,因为客户希望解决方案是动态的。 我的问题是 - 我可以以某种方式实现一个通用映射,它可以使用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。

1 个答案:

答案 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;

}