Мой случай: просмотр страниц и фильтрация (querydsl) вложенного объекта (ObjectB
- не уникально).
Упрощение структура данных:
@Document(collection= "ObjectA")
class ObjectA {
String id;
List<ObjectB> list;
}
class ObjectB {
String name;
}
Я не могу использовать @ DBRef из-за других деловых решений. Я пытаюсь создать другую коллекцию stati c с именем ObjectBView
и обновить ее с помощью MongoListener. К сожалению, это решение вызывает много дополнительного кода и оглушает процесс.
@Document(collection= "ObjectBView")
class ObjectBView {
String objectAId;
String name;
}
Интересно, как использовать MongoDB View (не материализованный) для создания ObjectBView
. Я обнаружил, что это возможно динамически c способом, используя MongoDatabase.createView()
и страницы запросов ( mongoTemplate и PageableExecutionUtils ). К сожалению, я не могу найти способ объединить его с QueryDSL для фильтрации данных (в настоящее время используется в проекте). Для QUeryDSL требуется репозиторий stati c, расширенный на QuerydslPredicateExecutor<T>
.
. Есть ли какое-либо решение для создания ObjectBView
, автоматического обновления свойств с ObjectA
и ObjectB
и обеспечения возможности его постраничного вывода, а также фильтрации (QueryDSL)