sap-commerce-cloud - FlexibleSearchQuery 响应没有数据

标签 sap-commerce-cloud

我正在尝试使用FlexibleSearchQuery获取一些数据,但它响应空结果。如果我设置此查询hac>Console>Flexible Search我可以获得我正在寻找的数据。 这是我在 java 文件中编写查询的方法。

sb.append(" SELECT {p:pk} ");
        sb.append(" FROM {" + ProductModel._TYPECODE + " AS p} ");
        sb.append(" WHERE {p:" + ProductModel.PK + " } IN ({{");
        sb.append(" SELECT DISTINCT {pro:" + ProductModel.PK + "} ");
        sb.append(" FROM {CategoryProductRelation AS cp},{" + ProductModel._TYPECODE + "! AS pro},{" + CategoryModel._TYPECODE
                + " AS c}");
        sb.append(" WHERE {pro:" + ProductModel.PK + " } = {cp:target}");
        sb.append("  AND {c:" + CategoryModel.PK + " } = {cp:source}");
        sb.append("  AND {c:" + CategoryModel.CODE + " } !=?categoryCode    }})");



args.put("categoryCode", categoryCode);

if (args != null && !args.isEmpty())
{
            searchQuery.addQueryParameters(args);
}

这是我如何调用搜索

final FlexibleSearchQuery searchQuery = new FlexibleSearchQuery(sb.toString());

searchResult.getResult().size()  >> retuns 0

如果我在控制台中输入它

SELECT {p:pk} FROM { Product AS p} WHERE { p: pk } IN ({{ 

            SELECT DISTINCT {pro: PK } 

                  FROM 

            {CategoryProductRelation AS cp}, 
            {Product AS pro}, 
            {Category as c} 

            WHERE {pro: PK} = {cp:target}

            AND {c:PK} = {cp:source}
            AND {c:code} != '0101'}})

我明白了

PK
8796093579265
8796101804033
8796100165633
8796098428929
8796093153281
8796102361089
8796097052673
8796093808641
8796093972481
8796096823297

我做错了什么? 控制台查询和字符串查询有什么区别吗?

最佳答案

我认为您的情况中的问题与限制有关,根据定义:限制是FlexibleSearch遵守的规则,它允许根据搜索的类型和当前登录的用户来限制搜索结果

因此,在调用灵活搜索之前,请尝试禁用搜索限制

import de.hybris.platform.search.restriction.SearchRestrictionService;
...
// Disable search restrictions
searchRestrictionService.disableSearchRestrictions();
// some query goes here

// Enable search restrictions
searchRestrictionService.enableSearchRestrictions();
// some query goes here

另一方面,当您使用hac>Console>灵活搜索时,我假设您以管理员身份登录,因此默认情况下在 Hybris 灵活搜索中禁用所有限制

您可以检查 HMC 中的所有事件限制,通过搜索类型: SearchRestriction ,查看以下屏幕截图

enter image description here

参见:https://help.hybris.com/6.3.0/hcd/8c428f8286691014970ceee87aa01605.html

关于sap-commerce-cloud - FlexibleSearchQuery 响应没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44046331/

相关文章:

java - Hybris Commerce Cuppy 扩展安装失败

java - 无法启动 Hybris 服务器

sap-commerce-cloud - SAP : Upgrading Hybris from version 5. 1.1 到 6.2

java - "RegionCacheAdapter Unable to clear cache. Failed on region null. Last key null null"

sap-commerce-cloud - impex 文件是什么?

sap-commerce-cloud - HYBRIS 灵活查询从订单模型中获取所有产品

java - Hybris CategoryProductRelation 类型作为 ItemModel?

tomcat - 如何更改hybris data hub的默认凭证

java - 静态方法中的 Spring 上下文为 null

angular - 如何在斯巴达克斯中抑制静态页面的自定义上下文?