Я пытаюсь оптимизировать свои коллекции MongoDB.Вот пример:
@Document
class Article {
@Id
private String id;
@DBRef(lazy = true)
@CascadeSave
private List<Comment> comments;
private String title;
private String text;
// constructors, getters and setters are ommited
}
@Document
class Comment {
@Id
private String id;
private String text;
private String author;
// constructors, getters and setters are ommited
}
Выглядит довольно просто.Получить статью, а затем получить все комментарии к этой статье.Но что, если у меня уже есть идентификатор статьи, и я просто хочу получить все комментарии к моей статье?Конечно, это тоже просто.Каждый комментарий должен содержать ссылку на статью, к которой он относится (например, article_id).
Мой вопрос: как я могу сделать это автоматически?Как вставить article_id в комментарий при сохранении / обновлении и т. Д.?Или я должен добавить поле в класс Comment и затем сначала сохранить статью, затем получить article_id, затем получить комментарии, добавить article_id, сохранить комментарии и добавить комментарии в коллекцию комментариев к статье?Это не имеет смысла для меня.
Я использую Java 10 с Spring Boot 2.0.5, включая spring-data-mongodb и реактивный драйвер.Я также реализовал аннотацию @CascadeSave для сохранения комментариев при сохранении статьи.
Спасибо за ваши ответы.