根据属性字段值配置集合名称

时间:2019-04-05 08:59:02

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

我有一个名为“ Google_Analytics_Extraction” 的集合,该集合保留了一个包含名为viewID的属性的spring pojo类。我需要通过将viewID添加到基本名称“ Google_Analytics_Extraction” 的末尾来存储每个viewID的差异集合,就像“ Google_Analytics_Extraction_xxxx”

我知道我们可以通过mongoTemplate来执行它,因为我需要使用@Document批注动态地执行它,也许使用 SPeL 语言或其他方式。

这是我的课程

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@org.springframework.data.mongodb.core.mapping.Document("Google_Analytics_Extraction_")
public class GAnalyticsDataEntity {

    @Id
    private String id;
    private String viewID;
    private String dateExtraction;
    private String fromToDate;
    private Document dimensionDocument;
    private Document metricDocument;

这可能吗?我该怎么办?

1 个答案:

答案 0 :(得分:0)

使用Spel语言解决了问题

@org.springframework.data.mongodb.core.mapping.Document("Google_Analytics_Extraction__#{@mongoConfig.getDefaultViewID()}")
public class GAnalyticsDataEntity {

    @Id
    private String id;
    private String viewID;
    private String dateExtraction;
    private String fromToDate;
    private Document dimensionDocument;
    private Document metricDocument;

我将带有吸气剂的bean MongoConfig添加到默认视图ID

@Component
@Getter
@Setter
public class MongoConfig {

    private String defaultViewID;

    @PostConstruct
    public void initViewt() {
        defaultViewID = "36293746";
    }
}

在调用save方法之前,此setId会更改此

 mongoConfig.setDefaultViewID(viewID);
        gAnalyticsEntityRepository.saveAll(gaKeywordReportingList);

谢谢

相关问题