java - 灵活的搜索查询在java文件中返回null,但在hac中工作正常

标签 java sap-commerce-cloud

我正在尝试通过一种方法获取一些数据。我的查询在 hac 中工作正常,但在 java 代码中使用时结果为 null。下面是我的java代码:-

 public class abc
 {
        @Resource
     private UserService userService;
     @Resource
     private SearchRestrictionService searchRestrictionService;
     @Resource
     private CatalogVersionService catalogVersionService;

         public List<ProductModel> findRequiredProducts()
         {
             this.userService.setCurrentUser(userService.getAdminUser());
             this.searchRestrictionService.disableSearchRestrictions();
                 this.catalogVersionService.setSessionCatalogVersion("abcCatalog", "Online");
          final String query = "select {p:name},{p.creationtime} from {Product! as p}";
          final FlexibleSearchQuery productQuery = new FlexibleSearchQuery(query);
          final SearchResult<ProductModel> searchResult = getFlexibleSearchService().search(productquery);
          this.searchRestrictionService.enableSearchRestrictions();
         final List<ProductModel> requiredProducts = searchResult.getResult();

         }

 }

在执行此代码时,我在 requiredProduct 列表中得到了“lazylist[null]”。可能是什么问题。

最佳答案

当您使用灵活搜索服务时,您应该感兴趣的唯一属性是主键,这里的问题是灵活搜索服务将尝试将名称(字符串)转换为PK(),尝试使用以下代码(Groovy 脚本):

import de.hybris.platform.servicelayer.search.FlexibleSearchQuery
import de.hybris.platform.servicelayer.search.SearchResult

def userService = spring.getBean("userService")
def searchRestrictionService = spring.getBean("searchRestrictionService")
def catalogVersionService = spring.getBean("catalogVersionService")
def flexibleSearchService = spring.getBean("flexibleSearchService")

userService.setCurrentUser(userService.getAdminUser())

def query = "select {pk} from {Product! as p}"
FlexibleSearchQuery productQuery = new FlexibleSearchQuery(query);
def searchResult = flexibleSearchService.search(productQuery);
def requiredProducts = searchResult.getResult();

记住!意味着您不会加载任何子类型

关于java - 灵活的搜索查询在java文件中返回null,但在hac中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40127348/

相关文章:

java - 页面的安全或 https 不起作用

java - 从 MySQL 更新 GUI 中的 JTable

java - Hashmap 上的 ClassCastException 到整数

java - 编码 ISO-8859-5 的 jedis 或 redis 问题

apache - 将两个 Web 服务器 https 和 http 请求转发到单个 hybris tomcat 服务器

xml - 让默认生成的 hybris 数据 bean 扩展自己生成的数据 bean

java - 在 Hybris 中批量更新 Java 表中的列

java - 第二高的数字 ArrayList

java - 以纳秒为单位衡量程序的运行时间

java - SOLR部分索引的最佳实践,以便更新Hybris中频繁更改的属性