尝试通过 java 检索灵活搜索的列 header
Trying to retrieve column header of flexible search thru java
我目前正在尝试使用 java 检索在灵活搜索中使用的列 header。但是我在 hybris 中找不到任何方法。
这是我处理灵活搜索的方法:
private List<List<Object>> processFlexibleQuery(final String flexibleQuery, final List<String> paramValues, final List<String> paramNames, final int headersCount)
{
final Map<String, Object> params = new HashMap<>();
final FlexibleSearchQuery query = new FlexibleSearchQuery(flexibleQuery);
final Class[] resultTypesArray = new Class[headersCount];
for (int i = 0; i < headersCount; i++)
{
resultTypesArray[i] = String.class;
}
query.setResultClassList(Arrays.asList(resultTypesArray));
if (paramValues.size() > 0 && paramNames.size() == paramValues.size())
{
for (int i = 0; i < paramValues.size(); i++)
{
params.put(paramNames.get(i).trim(), paramValues.get(i).trim());
}
}
query.addQueryParameters(params);
final SearchResult<List<Object>> result = flexibleSearchService.search(query);
final List<List<Object>> productList = result.getResult();
return productList;
}
我的方法很好用。我已经查找了 hybris 提供的几个 class 将灵活搜索的列 header 放在列表中,但我找不到任何方法。
基本上如果我用我的方法处理这个 FS:
SELECT {p.code} as potato,
{p.name} as name
FROM {product as p}
我想在列表中包含 "potato" 和 "name"。我不想使用 "as" 直接解析查询,因为如果在灵活搜索中有子查询,这会出错。有什么想法吗?
这个功能已经由hac完成,所以必须有解决方案。我没有确切的解决方案,但我可以共享功能相似的工具。您可以查看他们的源代码以找到您的方法。
在搜索网址时,我为您找到 exact point。
我目前正在尝试使用 java 检索在灵活搜索中使用的列 header。但是我在 hybris 中找不到任何方法。
这是我处理灵活搜索的方法:
private List<List<Object>> processFlexibleQuery(final String flexibleQuery, final List<String> paramValues, final List<String> paramNames, final int headersCount)
{
final Map<String, Object> params = new HashMap<>();
final FlexibleSearchQuery query = new FlexibleSearchQuery(flexibleQuery);
final Class[] resultTypesArray = new Class[headersCount];
for (int i = 0; i < headersCount; i++)
{
resultTypesArray[i] = String.class;
}
query.setResultClassList(Arrays.asList(resultTypesArray));
if (paramValues.size() > 0 && paramNames.size() == paramValues.size())
{
for (int i = 0; i < paramValues.size(); i++)
{
params.put(paramNames.get(i).trim(), paramValues.get(i).trim());
}
}
query.addQueryParameters(params);
final SearchResult<List<Object>> result = flexibleSearchService.search(query);
final List<List<Object>> productList = result.getResult();
return productList;
}
我的方法很好用。我已经查找了 hybris 提供的几个 class 将灵活搜索的列 header 放在列表中,但我找不到任何方法。 基本上如果我用我的方法处理这个 FS:
SELECT {p.code} as potato,
{p.name} as name
FROM {product as p}
我想在列表中包含 "potato" 和 "name"。我不想使用 "as" 直接解析查询,因为如果在灵活搜索中有子查询,这会出错。有什么想法吗?
这个功能已经由hac完成,所以必须有解决方案。我没有确切的解决方案,但我可以共享功能相似的工具。您可以查看他们的源代码以找到您的方法。
在搜索网址时,我为您找到 exact point。