【问题标题】:Configure collection name depending on attribute field value根据属性字段值配置集合名称
【发布时间】:2019-04-05 08:59:01
【问题描述】:

我有一个名为 "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;

这可能吗?我该怎么做?

【问题讨论】:

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


    【解决方案1】:

    问题已通过 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;
    

    我将一个带有 getter 的 bean MongoConfig 添加到默认视图 ID

    @Component
    @Getter
    @Setter
    public class MongoConfig {
    
        private String defaultViewID;
    
        @PostConstruct
        public void initViewt() {
            defaultViewID = "36293746";
        }
    }
    

    这个 viewId 在调用 save 方法之前由 setter 改变,像这样

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

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2017-11-29
      • 1970-01-01
      • 2013-04-28
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多