cancel
Showing results for 
Search instead for 
Did you mean: 

how to use Enum attribute in simple search

Former Member
0 Kudos

Hi,

I am getting "SQL search error : incompatible data type" while searching with enum data type in simple search.

how to add enum data type and other data types [date] in configuration file , for simple search.

I have tried by adding enum data type as mentioned below, It is not working. I got "SQL search error : incompatible data" Error, while searching.

Ex:

 <yss:simple-search xmlns:yss="http://www.hybris.com/cockpitng/config/simplesearch">
     <yss:field name="code"/>
      <yss:field name="name"/>
      <yss:field name="remarks"/>
      <yss:field name="pk"/>
  <yss:field name="approvalStatus"/>  *********** Enum Data type**********
     <yss:sort-field name="name" asc="true"/>
 </yss:simple-search>


Error :

ERROR [hybrisHTTP38] [FlexibleSearch] Flexiblesearch error: SQL search error : incompatible data type in operation query = 'SELECT item_t0.PK FROM products item_t0 LEFT JOIN productslp lp_t0_l1 ON item_t0.PK = lp_t0_l1.ITEMPK AND lp_t0_l1.LANGPK =? LEFT JOIN productslp lp_t0 ON at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$2.execute(DefaultFlexibleSearchService.java:384) at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$2.execute(DefaultFlexibleSearchService.java:1) at de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalView(DefaultSessionService.java:88) at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.getJaloResult(DefaultFlexibleSearchService.java:363) at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:164) at de.hybris.platform.genericsearch.impl.DefaultGenericSearchService$1.execute(DefaultGenericSearchService.java:108) at de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalView(DefaultSessionService.java:88)

Kindly help on this issue.

Thanks in advance. Anjan

View Entire Topic
chandnigideon13
Advisor
Advisor
0 Kudos

Hi,

Were you able to find the solution for it?

Thanks in advance!

amitpanwar
Advisor
Advisor
0 Kudos

This is not possible as the non atomic attributes are omitted in simple search. Look at the AbstractSearchController class's isApplicableForSimpleSearch method:

protected boolean isApplicableForSimpleSearch(String typeCode, String fieldName) {
DataAttribute attribute = this.typeFacade.getAttribute(typeCode, fieldName);
if (attribute == null) {
LOG.warn("Could not load DataAttribute for field [{}] of type [{}]", fieldName, typeCode);
return false;
} else if (!attribute.getDefinedType().isAtomic()) {
LOG.warn("SimpleSearch configured incorrectly for type [{}]. Non-atomic field [{}] has been omitted", typeCode, fieldName);
return false;
} else {
return true;
}
}