title: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
body: <p>when I am running this code its giving me exception 
      java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String on q1.list();</p>
  
  <pre><code>Query q=session.createQuery("select categoryData FROM SearchHistoryEntity where userId=:u");
  q.setInteger("u", userId);
  List&lt;String&gt; list1=q.list();
  if(list1!=null){
  Query q1=session.createQuery("FROM BookEntity where category in (:names) order by bookId");
  q1.setParameter("names", list1);
  if(q1.list().size()&gt;9){  
      q1.setFirstResult(1);
      q1.setMaxResults(9);
  }
  list=new ArrayList&lt;BookEntity&gt;();
  list=q1.list();
  </code></pre>
  
  <p>this is the full stacktrace:</p>
  
  <pre><code>SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/BookStore] threw        exception [Request processing failed; nested exception is java.lang.ClassCastException:     java.util.ArrayList cannot be cast to java.lang.String] with root cause
  java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
  at org.hibernate.type.descriptor.java.StringTypeDescriptor.unwrap(StringTypeDescriptor.java:39)
  at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$1.doBind(VarcharTypeDescriptor.java:64)
  at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:90)
  at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:286)
  at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:281)
  at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:67)
  at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:613)
  at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1900)
  at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1861)
  at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)
  at org.hibernate.loader.Loader.doQuery(Loader.java:909)
  at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
  at org.hibernate.loader.Loader.doList(Loader.java:2553)
  at org.hibernate.loader.Loader.doList(Loader.java:2539)
  at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
  at org.hibernate.loader.Loader.list(Loader.java:2364)
  at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
  at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231)
  at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
  at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
  at com.app.dao.hib.SearchHistoryDaoImpl.categoryData(SearchHistoryDaoImpl.java:150)
  at com.app.service.impl.SearchHistoryServiceImpl.recommend(SearchHistoryServiceImpl.java:62)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
  at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
  at $Proxy37.recommend(Unknown Source)
  at com.app.controller.UserController.recommend(UserController.java:74)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>I the above code i am just trying to get the list of titles from SearchHistory table corresponding to a particular userId (which is query q) and then finding the list of books with those titles (query q1) but there is some problem its not working.
  can anyone help me with this </p>