如何在子类型属性上编写灵活的搜索查询

2020-09-14 21:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个类似父类的要求,Child1扩展了Parent,子2扩展了Parent,child3扩展了Parent .............只有父类型具有具有共同属性的部署表。

现在,我需要运行查询以获取父项中带有或分隔不同子类型属性的where子句的公共属性

就像

从{user}中选择*,其中{mobileNumber} ='xxxx'(但mobileNumber是在customerModel中定义的,而不是UserModel)。直接从查询中获得结果是必需的,而无需进行类型转换。 任何建议将不胜感激。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个类似父类的要求,Child1扩展了Parent,子2扩展了Parent,child3扩展了Parent .............只有父类型具有具有共同属性的部署表。

现在,我需要运行查询以获取父项中带有或分隔不同子类型属性的where子句的公共属性

就像

从{user}中选择*,其中{mobileNumber} ='xxxx'(但mobileNumber是在customerModel中定义的,而不是UserModel)。直接从查询中获得结果是必需的,而无需进行类型转换。 任何建议将不胜感激。

付费偷看设置
发送
4条回答
绿领巾童鞋
1楼-- · 2020-09-14 22:41
 字符串查询=从{CustomerModel}中选择{pk},其中{mobileNumber} ='xxx'
  FlexibleSearhQuery fquery =新的FlexibleSearchQuery(查询)
 
  最终SearchResult 结果= getFlexibleSearchService()。search(fquery);
 

  

基本上,如果C扩展了B并且B扩展了A,则只有C拥有部署表时,对C的查询将为您提供B&A的属性。

不需要类型转换。

愤怒的猪头君
2楼-- · 2020-09-14 22:39

嗨,

您可以直接在子类型上运行灵活的搜索:

字符串查询=从{Customer}中选择{pk},其中{mobileNumber} ='xxx'FlexibleSearhQuery fquery =新的FlexibleSearchQuery(query)最终SearchResult结果= getFlexibleSearchService()。search(fquery);

请注意,查询适用于类型,而不适用于模型。

类似地,如果您只想获取父类型,即示例中的用户,则应输入:

字符串查询=从{User!}中选择{pk},其中{uid} ='xxx'

谢谢,
Vikram

SAP砖家
3楼-- · 2020-09-14 22:39

您可以使用 union 进行类似的操作。 由于Hybris解析flexiblesearch的方式,因此语法非常晦涩。

 从child1中选择common_attribute,其中child1_attribute =?
  联盟
  从child2中选择common_attribute,其中child2_attribute =吗?
  
Customer Employee 示例中的

变为

 从中选择uid
  (
    {{从{customer}中选择{uid}作为uid,其中{title}不为空}}
    联盟
    {{从{employee}中选择{uid},其中{sessionCurrency}不为空}}
  ) X
  

x 是派生表的别名,这是必需的。 我不确定这是Hybris还是Mysql是否需要它。

四川大学会员
4楼-- · 2020-09-14 22:35

您可以在父表和子表之间编写联接。 ..

一周热门 更多>