我的案例:嵌套对象的可分页和过滤(querydsl)(ObjectB- 不是唯一的)。
简化数据结构:
@Document(collection= "ObjectA")
class ObjectA {
String id;
List<ObjectB> list;
}
class ObjectB {
String name;
}
由于其他业务决策,我不能使用@DBRef 。我尝试创建另一个名为的静态集合ObjectBView并使用 MongoListener 对其进行更新。不幸的是,这个解决方案会导致很多额外的代码和眩晕过程。
@Document(collection= "ObjectBView")
class ObjectBView {
String objectAId;
String name;
}
我想知道如何使用 MongoDB View(未物化)来创建ObjectBView. 我发现可以以动态方式使用MongoDatabase.createView()和查询页面(mongoTemplate 和 PageableExecutionUtils)。不幸的是,我找不到将它与 QueryDSL 结合起来过滤数据的方法(目前在项目中使用)。QUEyDSL 需要静态存储库扩展QuerydslPredicateExecutor<T>.
是否有任何解决方案可以创建ObjectBView、自动更新属性ObjectA并ObjectB使其可分页以及过滤(QueryDSL)?