У меня большой проект Spring Boot, использующий MongoDB. Большая часть работы выполняется с использованием классов репозитория Spring Data. Это здорово. Но иногда я хочу сделать что-то, что не легко поддерживается интерфейсами репозитория Spring Data. В этом случае я использую RepositoryCutomInterface для добавления дополнительных методов. Это все хорошо. Прямо сейчас я использую объект MongoOperations, автоматически подключенный к RepositoryCustomInterface. С этим объектом MongoOperations я могу идти дальше и делать все, что захочу.
Однако я действительно хотел бы использовать Morphia из-за его безопасности типов и других преимуществ.
Я настроил это в своем проекте, и он генерирует классы Q и создает Datastore и Morphia для меня. Я успешно использую их в своем RepositoryCustomInterface для выполнения различных запросов.
Я пытаюсь выяснить, как выполнять обновления. Я подробно прочитал документацию по Morphia, и в разделе о MongoDB ничего не говорится о выполнении обновлений.
Например, я хотел бы сделать:
final QImageCapture imageCapture =
new QImageCapture("imageCapture");
final MorphiaQuery<ImageCapture> query =
new MorphiaQuery<>(morphia,datastore,imageCapture);
query.where(imageCapture.id.in(ids)).
set(imageCapture.deleted, TRUE);
Но это не правильный код. Метод set () хочет ParamExpression
, а imageCapture.deleted
- BooleanPath
.
Я вижу, что могу создать UpdateOperations из хранилища данных. Однако, похоже, что не используются классы Q.
Я искал везде и не могу найти пример, и мне интересно, возможно ли это или нет.
Любые предложения приветствуются.