java - Hibernate get SQL query.list() : ArrayIndexOutOfBoundsException 0 -


@suppresswarnings("unchecked") public list<object[]> findadcampstatistics(long adcampid, string startdate, string enddate, float costperclick, string orderstatus){     string sqlstr =              "select adcamp_id, alternative_ids, click, ordercount, conversion, ((100*ordercount)/click) conversionrate, (click * " + (costperclick != 0?costperclick:0) + ") cost " +             "from ( " +                 "select adcamp_id, alternative_ids, count(*) click, " +                     "sum(( " +                          "select count(*) "+                         "from nc_order, nc_cart "+                         "where nc_order.cart_id = nc_cart.id "+                             "and nc_cart.adcamp_click_id = nc_adcamp_click.id "+                             (orderstatus != ""? "and nc_order.order_status = '"+ orderstatus +"' " : " ")+                         " )) ordercount, "+                     "sum(( " +                          "select sum(nc_payment_log.amount) "+                         "from nc_order, nc_cart, nc_payment_log "+                         "where nc_order.payment_log_id = nc_payment_log.id "+                             "and nc_order.cart_id = nc_cart.id "+                             "and nc_cart.adcamp_click_id = nc_adcamp_click.id " +                               (orderstatus != ""? "and nc_order.order_status = '"+ orderstatus +"' " : " ") +                         " )) conversion "+                 "from nc_adcamp_click "+                 "where "+                      (adcampid!=0? "adcamp_id =" + adcampid.tostring() + " , ":" ") +                     "date_clicked between '" + startdate + "' , '" + enddate + "' "+                 "group alternative_ids "+             ") temp";      sqlquery sqlquery = getsqlquery(sqlstr);     system.out.println("adcamp sql ===============> " + sqlstr);     list<object[]> result = new arraylist<object[]>();      return sqlquery.list(); } 

here little complicated sql, creating using params, , when run on line sqlquery.list(); gives error:

java.lang.arrayindexoutofboundsexception: 0 @ org.hibernate.type.typehelper.disassemble(typehelper.java:146) @ org.hibernate.cache.standardquerycache.put(standardquerycache.java:106) @ org.hibernate.loader.loader.putresultinquerycache(loader.java:2443) @ org.hibernate.loader.loader.listusingquerycache(loader.java:2321) @ org.hibernate.loader.loader.list(loader.java:2268) @ org.hibernate.loader.custom.customloader.list(customloader.java:316) @ org.hibernate.impl.sessionimpl.listcustomquery(sessionimpl.java:1842) @ org.hibernate.impl.abstractsessionimpl.list(abstractsessionimpl.java:165) @ org.hibernate.impl.sqlqueryimpl.list(sqlqueryimpl.java:157) @ com.netasoft.commerce.framework.marketing.dao.adcampdaoimpl.findadcampstatistics(adcampdaoimpl.java:71) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.aop.support.aoputils.invokejoinpointusingreflection(aoputils.java:318) @ org.springframework.aop.framework.reflectivemethodinvocation.invokejoinpoint(reflectivemethodinvocation.java:183) @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:150) @ org.springframework.transaction.interceptor.transactioninterceptor.invoke(transactioninterceptor.java:110) @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:172) @ org.springframework.aop.framework.jdkdynamicaopproxy.invoke(jdkdynamicaopproxy.java:202) @ $proxy96.findadcampstatistics(unknown source) @ com.netasoft.commerce.framework.marketing.service.marketingserviceimpl.findadcampstatistics(marketingserviceimpl.java:71) @ com.netasoft.commerce.framework.adminint.controller.reportcontroller.adcamp(reportcontroller.java:55) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.web.method.support.invocablehandlermethod.invoke(invocablehandlermethod.java:212) @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:126) @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:96) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlermethod(requestmappinghandleradapter.java:617) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:578) @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:80) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:900) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:827) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:882) @ org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:789) @ javax.servlet.http.httpservlet.service(httpservlet.java:710) @ javax.servlet.http.httpservlet.service(httpservlet.java:803) 

however when run script on sql query in query browser works without exception , return results.

sql is:

select adcamp_id, alternative_ids, click, ordercount, conversion, (100*ordercount)/click conversionrate, (click * 1.0) cost  ( select adcamp_id, alternative_ids, count(*) click,     sum(( select count(*) nc_order, nc_cart nc_order.cart_id = nc_cart.id , nc_cart.adcamp_click_id = nc_adcamp_click.id , nc_order.order_status = 'delivered'  )) ordercount,     sum(( select sum(nc_payment_log.amount) nc_order, nc_cart, nc_payment_log nc_order.payment_log_id = nc_payment_log.id , nc_order.cart_id = nc_cart.id , nc_cart.adcamp_click_id = nc_adcamp_click.id , nc_order.order_status = 'delivered'  )) conversion     nc_adcamp_click     adcamp_id =1 , date_clicked between '2013-02-09' , '2013-05-09'     group alternative_ids  ) temp 

i think you're issue might have this:

https://hibernate.atlassian.net/browse/hhh-6681

it odd see standardquerycache in stack trace native query. did explicitly enable query caching query? if so, try w/o query caching looks hibernate having issues deriving type of mapped entity tie caching to.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -