【问题标题】:search(query) throws NullPointerException搜索(查询)抛出 NullPointerException
【发布时间】:2018-04-25 15:27:21
【问题描述】:
    public List<DHProductLookupModel> findProductbyCCsapProductId(final String code)
{
    final String queryString = "SELECT {p:" + DHProductLookupModel.SAPPRODUCTID + "}" + "FROM{" + DHProductLookupModel._TYPECODE
            + " AS p}" + "WHERE" + "{p:" + DHProductLookupModel.SAPPRODUCTID + "}=?code ";
    final FlexibleSearchQuery query = new FlexibleSearchQuery(queryString);
    query.addQueryParameter("code", code);
    return flexibleSearchService.<DHProductLookupModel> search(query).getResult();
}

search(query) 抛出空指针异常,如何处理?

输出:

Caused by: java.lang.NullPointerException
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.getJaloResult(DefaultFlexibleSearchService.java:396) ~[coreserver.jar:?]
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:168) ~[coreserver.jar:?]
    at com.cancom.core.productlookup.dao.impl.CCProductLookupDaoImpl.findProductbyCCmanufacturerProductId(CCProductLookupDaoImpl.java:39) ~[classes/:?]
    at com.cancom.core.productlookup.service.impl.CCProductLookupServiceImpl.getProductforCCmanufacturerProductId(CCProductLookupServiceImpl.java:37) ~[classes/:?]

谢谢!

【问题讨论】:

    标签: hybris hybris-data-hub


    【解决方案1】:

    更改您的灵活搜索查询
     final String queryString = "SELECT {p:" + DHProductLookupModel.SAPPRODUCTID + "}" + "FROM{" + DHProductLookupModel._TYPECODE
            + " AS p}" + "WHERE" + "{p:" + DHProductLookupModel.SAPPRODUCTID + "}=?code ";
    

     final String queryString = "SELECT {p:" + DHProductLookupModel.PK + "}" + "FROM{" + DHProductLookupModel._TYPECODE
            + " AS p}" + "WHERE" + "{p:" + DHProductLookupModel.SAPPRODUCTID + "}=?code ";
    

    您应该在搜索结果中发送DHProductLookupModel.PK

    【讨论】:

    • 我尝试使用 DHProductLookupModel.PK 但它仍然无法正常工作
    【解决方案2】:

    在您的情况下,您可以使用 flexibleSearchServicegetModelsByExample 而不是编写查询。

    你的方法会是这样的

     public List<DHProductLookupModel> findProductbyCCsapProductId(final String code)
     {
         DHProductLookupModel dhProductLookupModel = new DHProductLookupModel();
         dhProductLookupModel.setSapProductID(code);
         return getFlexibleSearchService().getModelsByExample(dhProductLookupModel);
     }
    

    find the example here

    【讨论】:

      【解决方案3】:

      谢谢大家! 我发现了问题。那是在我的春天。我只需要放:

       <context:component-scan base-package="myPackage"/>
      

      为了安全起见,我还使用 DHProductLookupModel.PK 更改了查询。现在可以了!

      【讨论】:

        猜你喜欢
        • 2015-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-11
        • 2013-09-07
        • 2013-06-18
        • 2016-07-07
        • 2014-10-02
        相关资源
        最近更新 更多