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
Post a Comment