在我的代码中,我具有Hybris中某些页面组件的主键,我必须找到它们的所有属性(如标题,内容等属性)
我可以使用SQL查询来查询“ Props”表,但是由于不建议直接查询数据库,因此我不确定如何在“弹性搜索”中找到对应的内容。
还有其他更简单的方法来检索仅具有主键的组件的所有属性吗?
答案 0 :(得分:1)
您可以做的是使用其主键检索所需的组件。示例:
select {pk} from {SimpleCMSComponent} where {pk} ='8796093056060'
通常在DAO类中使用灵活的搜索(平台示例: DefaultProductDao )。
当灵活搜索服务运行此灵活搜索时,您将获得一个ComponentModel。请在下面看到我刚刚创建的groovy脚本,以举例说明如何打印基于其PK检索到的组件的ID(以同样的方式,通过使用吸气剂,您可以获得 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。