компромисс между @DBref и постоянным не ссылочным объектом - PullRequest
0 голосов
/ 18 марта 2020

см. Мой класс документов:

@Document
public class Workspace extends AuditDocument {

    private String name;
    ...
}

@Document
public class DownloadFile extends AuditDocument {

    @DBRef
    private Workspace workspace;
    private Date completeDate;
    private String fileFullAddress;
    private String fileName;

    /*getter and setter*/
}

предположим, что у меня есть сетка для предварительного просмотра DownloadFile данных.

моя проблема началась, когда пользователю необходимо отфильтровать данные по workspace имени , когда я использую @DBRef, мне удобно для согласованности данных, но я не могу искать другие поля класса workspace, кроме id. поэтому я буду вынужден обновлять данные этого поля, каждый раз, когда workspace меняется.

@Async
public void updateWorkspaceName(Workspace workspace) {
    Query query = new Query();
    query.addCriteria(Criteria.where("workspace.id").is(workspace.getId()));
    Update update = new Update();
    update.set("workspace", workspace);
    mongoTemplate.updateMulti(query, update, DownloadFile.class);
}

и спрашивает, если у меня есть тысячи DownloadFile документов, служба mongodb не будет иметь проблем с этой перегрузкой в будущее ?

...