Настройте имя коллекции в зависимости от значения поля атрибута - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть коллекция с именем "Google_Analytics_Extraction" , в которой сохраняется пружинный класс pojo, содержащий атрибут с именем viewID. Мне нужно хранить разные коллекции для каждого viewID, добавив viewID в конец базового имени "Google_Analytics_Extraction" , чтобы он походил на "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 голосов
/ 05 апреля 2019

Проблема была решена с помощью языка 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 с геттером к идентификатору представления по умолчанию

@Component
@Getter
@Setter
public class MongoConfig {

    private String defaultViewID;

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

этот viewId изменяется установщиком довызов метода сохранения, подобного этому

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

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...