FlexibleSearchQuery 响应没有数据

2024-01-16

我正在尝试使用获取一些数据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'}})

I get

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>Flexible Search我假设您以管理员身份登录,因此 Hybris 灵活搜索中默认禁用所有限制

您可以通过搜索类型来检查 HMC 中的所有活动限制:SearchRestriction,看下面的截图

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FlexibleSearchQuery 响应没有数据 的相关文章

随机推荐

  • 如何向现有的 Azure 表存储添加新列

    我们正在使用天蓝色表存储 并且有数千个使用相同架构的表 现在我们希望向这些表中添加另一列 我们如何在不删除表并重新添加的情况下向现有表中添加另一列 Windows Azure 表存储实际上没有列 每个实体 例如行 只是一组属性 没有固定的模
  • Angular 6 服务:providIn:“root”与 CoreModule

    对于 Angular 6 以下是创建单例服务的首选方法 import Injectable from angular core Injectable providedIn root export class UserService 来自角度
  • JasperReports:具有不同方向的子报表

    是否可以将纵向和横向子报表合并到一个报表中 我正在使用 iReport 2 0 4 似乎找不到任何选项来做到这一点 不幸的是 我认为这是不可能的 所有子报告均遵循主报告的方向
  • 没有函数与给定名称和参数类型匹配

    我的职能是 CREATE OR REPLACE FUNCTION FnUpdateSalegtab09 iacyrid Integer iRepId Integer iDrId Integer ivrid Integer imode sma
  • 当所属变量不可变时,如何插入析构函数调用“fn drop(&mut self)”调用?

    据我了解 当一个变量的类型实现Drop超出范围 调用fn drop mut self 函数被插入 并将新创建的可变引用传递给超出范围的变量 但是 如果变量是不可变绑定的 并且可变借用它是非法的 那么这怎么可能呢 这是我正在谈论的一个例子 f
  • 绘制一个图,其中 Y 轴文本数据(非数字)和 X 轴数字数据

    我可以根据 简单 字典在 matplotlib 中创建一个简单的柱状图 import matplotlib pyplot as plt D u Label1 26 u Label2 17 u Label3 30 plt bar range
  • 如何查看 Java 10 Javadocs(在 Eclipse 中)

    首先 我确实意识到这个问题在 stackoverflow 上已经以多种排列方式被提出 我在发布之前进行了相当多的搜索 因此请不要链接到另一个问题 除非它回答了我的具体问题和场景 我最近从 Java 8 升级到 10 但是 现在我无法查看任何
  • Ruby:如何判断一个字符是字母还是数字?

    本周早些时候我刚刚开始摆弄 Ruby 但遇到了一些我不太知道如何编码的问题 我正在将用 Java 编写的扫描器转换为 Ruby 以进行类作业 我已经开始讨论这一部分 if Character isLetter lookAhead retur
  • asp.net中Application_Error()如何知道请求是否是ajax

    asp net中Application Error 如何知道请求是否是ajax 我想在Application Error 中处理应用程序错误 如果请求是ajax并抛出一些异常 则将错误写入日志文件并返回包含客户端错误提示的json数据 否则
  • 正则表达式替换嵌套括号匹配内的字符,或仅替换匹配外的文本内的字符[重复]

    这个问题在这里已经有答案了 我正在编写一个 AutoHotkey 脚本 它将根据屏幕上选择的文本格式化 SQL 语句 我想把这样的声明 SELECT Name AS Object Name Switch Type 5 Query Type
  • 具有多个表的 ContentProvider

    我想实施一个ContentProvider操作多个表 这是我到目前为止所尝试的 我写了一个JavaInterface表示每个表应在其 CRUD 类中实现的 CRUD 操作 public interface CRUDHandler UPDAT
  • urllib.request.urlopen() 是做什么的?

    在 python 3 中 urllib request 模块中的 urlopen 函数是否检索 URL 的目标 或者只是作为文件句柄打开到 URL 的连接 还是我完全丢失了它 我想了解它是如何工作的 基本上我想找到从 URL 下载文件所花费
  • 如何在django过滤查询中使用大于和小于或等于

    我正在尝试过滤从日期到日期之间添加的数据 但我得到了无法将关键字 date gte 解析为字段 我该如何解决这个问题 from1 request POST get from to request POST get to result qwe
  • 错误:无法运行 aapt

    当我编译 Android 应用程序时 我尝试使用 sdk 中的示例应用程序 我收到此错误 gt Error executing aapt Cannot run program home roel projects sdk build too
  • React Router 转换进出事件

    我对我正在开发的一个小型网站有一个相当基本的设置 我正在使用 React 和 React Router 4 现在我想在用户输入路线时添加过渡 以使用一些 javascript 动画过渡该路线的进出 但是 我不知道如何正确执行此操作 假设用户
  • 谷歌表单计时器

    我希望为我在 Google Forms 中创建的测验创建一个计时器 我在这里找到了这篇文章 如何向 Google 表单添加学校测验计时器 https stackoverflow com questions 16394435 how to a
  • 带有日期时间选择器的 SQL 语句

    希望这应该是一个简单的问题 在 Windows 窗体中使用日期时间选择器时 我希望执行 SQL 语句 如下所示 string sql SELECT FROM Jobs WHERE JobDate dtpJobDate Text 不幸的是 这
  • 动态 if 语句?

    我正在开发 生命游戏 的克隆版 无法链接维基 因为它已关闭 基本功能已完成 但我想为用户提供定义自己的规则的选项 标准的人生游戏规则是 有 2 或 3 个邻居的牢房仍然可以生存 具有 0 1 和 4 8 邻居的细胞死亡 有 3 个邻居的死亡
  • 将文件夹移动到其自己的首字母目录中

    我使用此脚本将文件夹移动到其自己的首字母目录中 echo off setlocal enabledelayedexpansion tree for d i in do set first i set first first 0 1 md f
  • FlexibleSearchQuery 响应没有数据

    我正在尝试使用获取一些数据FlexibleSearchQuery但它响应空结果 如果我设置这个查询hac gt Console gt Flexible Search我可以获得我想要的数据 这是我在 java 文件中编写查询的方式 sb ap