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();
}
搜索(查询)抛出Null Pointer Exception,如何处理?
输出:
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/:?]
谢谢!
答案 0 :(得分:2)
从
更改您的灵活搜索查询 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
。
答案 1 :(得分:0)
在您的情况下,您可以使用 flexibleSearchService 的 getModelsByExample ,而不是编写查询。
你的方法就像
public List<DHProductLookupModel> findProductbyCCsapProductId(final String code)
{
DHProductLookupModel dhProductLookupModel = new DHProductLookupModel();
dhProductLookupModel.setSapProductID(code);
return getFlexibleSearchService().getModelsByExample(dhProductLookupModel);
}
答案 2 :(得分:0)
谢谢大家! 我发现了问题。这是在我的春天。我只需要把:
<context:component-scan base-package="myPackage"/>
为了安全起见,我还使用DHProductLookupModel.PK更改了查询。现在它的工作!