如何从灵活搜索中查询"Props" table?

How to query the "Props" table from Flexible Search?

在我的代码中,我有 Hybris 中某些页面组件的主键,我必须找到它们的所有属性(标题、内容等属性)

我可以使用 SQL 查询来查询 "Props" table,但我不确定如何在灵活搜索中找到等效项,因为直接查询数据库不是推荐。

是否有任何其他更简单的方法来检索只有主键的组件的所有属性?

您可以做的是使用主键检索所需的组件。示例:

select {pk} from {SimpleCMSComponent} where {pk} ='8796093056060'

DAO中通常使用灵活搜索类(平台示例:DefaultProductDao)。

当灵活搜索服务 运行 进行此灵活搜索时,您将获得一个 ComponentModel。请看下面我刚刚创建的 groovy 脚本,以举例说明如何打印基于其 PK 检索到的组件的 ID(以同样的方式使用 getters 你可以获得 title, 内容, 等等..):

import de.hybris.platform.cms2.model.contents.components.SimpleCMSComponentModel;


def flexibleSearchService = spring.getBean("flexibleSearchService");

SimpleCMSComponentModel simpleCmsComponent = flexibleSearchService.search("select {pk} from {SimpleCMSComponent} where {pk} ='8796093056060'").getResult().get(0);
println(simpleCmsComponent.getUid())

尽管我认为 CMS 组件的最佳实践是使用它们的 ID 而不是 PK。