我有一个河马豆,其中包含一个hippobe的列表作为linkedBeans。
@HippoEssentialsGenerated(internalName = "example:comment")
public List<HippoBean> getComment() {
return getLinkedBeans("comment", HippoBean.class);
}
现在我想创建一个查询来检索这样的注释:
hstQuery = HstQueryBuilder.create(scope)
.ofTypes(Article.class)
.where(constraint("example:comment").contains("good job"))
.build();
我们的想法是检索所有文章,使得与它们相关的评论包含字符串“good job”。到目前为止,此查询不返回任何内容。是否可以查看作为LinkedBeans关联到另一个HippoBean的HippoBeans数组?如果是这样,怎么能实现呢?我见过允许在单个属性中搜索文本的示例,如下所示:
HstQuery hstQuery = HstQueryBuilder.create(scope)
.ofTypes(BaseDocument.class)
.where(constraint("title").contains("Hello World"))
.limit(pageSize)
.offset(pageSize * (pageNum - 1))
.orderByDescending("mynamespace:date")
.build();
在这种情况下,查询只返回那些文档,使其标题包含字符串“Hello World”
示例:评论不是评论,它是对评论的引用。所以这个查询在uuid中寻找字符串“good job”。遗憾的是,您无法以您希望的方式创建此查询。每篇文章都需要第二个查询来查找此信息。或查询所有评论“好工作”并检索与其相关的文章。无论哪种方式,它都会很昂贵。
这将返回包含文章文档链接的所有注释文档:
ContentBeanUtils.createIncomingBeansQuery(article,scope,"example:comment/@hippo:docbase,Comment.class,false)
第一个参数是由几个注释文档链接的文章类的特定实例。