cancel
Showing results for 
Search instead for 
Did you mean: 

Exception at DAOImpl layer while executing FlexibleSearchquery ?

01-02-2017 4:08 PM
554 views 1 comments Go to solution
0 Likes
SAP Managed Tags
Subscribe

Hello Hybris Experts,

Am unable to resolve the below exception found at console & screen. My select query and one of the @ overridden method.

 private static final String FIND_AVALBAL_FOR_REDEEMCUSTOMER = "SELECT {" + RedeemBalModel.PK + "}, {" + RedeemBalModel.UID
             + "}, {" + RedeemBalModel.MDFBALANCE + "}, {" + RedeemBalModel.REDEEMEMAILCUSTOMER + "} FROM {"
             + RedeemBalModel._TYPECODE + "} WHERE {" + RedeemBalModel.REDEEMEMAILCUSTOMER + "} = ?redeemEmailCustomer";
 
 
 @Override
     public RedeemBalModel findUidByAvailBalance(final String uid)
     {
         final Map<String, Object> queryParams = new HashMap<String, Object>();
         queryParams.put("uid", uid);
         @SuppressWarnings("unchecked")
         final SearchResult<RedeemBalModel> searchResult = (SearchResult<RedeemBalModel>) getFlexibleSearchService()
                 .searchUnique(new FlexibleSearchQuery(FIND_AVALBAL_FOR_REDEEMCUSTOMER, queryParams));
 return (RedeemBalModel) searchResult;
 }
 private FlexibleSearchService flexibleSearchService;
 
     @Override
     protected FlexibleSearchService getFlexibleSearchService()
     {
         return flexibleSearchService;
     }
 
     @Override
     @Required
     public void setFlexibleSearchService(final FlexibleSearchService flexibleSearchService)
     {
         this.flexibleSearchService = flexibleSearchService;
     }

==================================================================== The below exception is,

 root cause
 
 de.hybris.platform.servicelayer.search.exceptions.FlexibleSearchException: missing values for [redeemEmailCustomer], got {11=8796132737106, [email protected]}
     de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$2.execute(DefaultFlexibleSearchService.java:417)
     de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$2.execute(DefaultFlexibleSearchService.java:1)
     de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalView(DefaultSessionService.java:90)
     de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.getJaloResult(DefaultFlexibleSearchService.java:396)
     de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:168)
     de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.searchUnique(DefaultFlexibleSearchService.java:284)
     de.hybris.mdfBalance.core.dao.impl.DefaultMdfBalanceDaoImpl.findUidByAvailBalance(DefaultMdfBalanceDaoImpl.java:56)
     de.hybris.mdfBalance.core.services.impl.DefaultCoreMdfBalanceService.getAvailBal(DefaultCoreMdfBalanceService.java:55)
     de.hybris.mdfBalance.facades.mdf.impl.DefaultMdfBalanceFacade.getAvailBal(DefaultMdfBalanceFacade.java:75)
     de.hybris.platform.b2bacceleratoraddon.controllers.pages.checkout.steps.PaymentTypeCheckoutStepController.enterStep(PaymentTypeCheckoutStepController.java:102)
     de.hybris.platform.b2bacceleratoraddon.controllers.pages.checkout.steps.PaymentTypeCheckoutStepController$$FastClassBySpringCGLIB$$8c8f1bcc.invoke(<generated>)

Could any one guide me to resolve the above exception. Appreciate your help.

Thanks in Advance

BR R venkata karthik

0 Likes

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Likes

Hi , In the query you are adding a query parameter

 ?redeemEmailCustomer";


and in the queryParams map, you are adding only uid, which is never used in the query.

replace ?redeemEmailCustomer with ?uid and it will work

Regards, Jithin

Answers (0)