简体   繁体   中英

java.lang.StackOverflowError while fetching hibernate query

I am getting an error while fetching hibernate query of my list size 500 the error which i am getting is
can you help me why i am getting this error

 [org.springframework.remoting.support.RemoteInvocationTraceInterceptor] (RMI TCP Connection(2)-192.168.43.183) Processing of RmiServiceExporter remote call resulted in fatal exception: com.elcy.service.LCMessageRmiService.sendReportEmail: java.lang.StackOverflowError
    at java.lang.reflect.Constructor.newInstance(Unknown Source) [rt.jar:1.8.0_25]
    at java.lang.Class.newInstance(Unknown Source) [rt.jar:1.8.0_25]
    at org.hibernate.hql.internal.ast.SqlASTFactory.create(SqlASTFactory.java:260) [hibernate-core-4.3.2.Final.jar:4.3.2.Final]
    at antlr.ASTFactory.create(ASTFactory.java:153) [antlr-2.7.7.jar:]
    at antlr.ASTFactory.create(ASTFactory.java:186) [antlr-2.7.7.jar:]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2038) [hibernate-core-4.3.2.Final.jar:4.3.2.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046) [hibernate-core-4.3.2.Final.jar:4.3.2.Final]
ERROR [org.jboss.as.ejb3.invocation] (Thread-226 (ActiveMQ-client-global-threads-225168338)) WFLYEJB0034: EJB Invocation failed on component LCMessageMDB for method public void com.elcy.message.LCMessageMDB.onMessage(javax.jms.Message): javax.ejb.EJBTransactionRolledbackException: WFLYEJB0457: Unexpected Error
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:153) [wildfly-ejb3-10.0.0.Final.jar:10.0.0.Final]
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:256) [wildfly-ejb3-10.0.0.Final.jar:10.0.0.Final]
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:329) [wildfly-ejb3-10.0.0.Final.jar:10.0.0.Final]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.8.0_25]`

`at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_25]

Caused by: java.lang.StackOverflowError
 at java.lang.reflect.Constructor.newInstance(Unknown Source) [rt.jar:1.8.0_25]
    at java.lang.Class.newInstance(Unknown Source) [rt.jar:1.8.0_25]
    at org.hibernate.hql.internal.ast.SqlASTFactory.create(SqlASTFactory.java:260)
    at antlr.ASTFactory.create(ASTFactory.java:153)
    at antlr.ASTFactory.create(ASTFactory.java:186)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2038)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2046)


 my hql query code looks like as given below
  for (Iterator iterator = resultList.iterator(); iterator.hasNext(); ) {
            String id = (String) iterator.next();

            if (iterator.hasNext())
                sqlQueryBuff.append(" t.id = '" + id + "' OR");
            else
                sqlQueryBuff.append(" t.id = '" + id + "' ) ");
        }
 query = session.createQuery(sqlQueryBuff.toString());

after this line i am getting this whole error

my maven dependency is as given below

<properties>
    <jdk.version>1.6</jdk.version>
    <spring-framework.version>4.0.2.RELEASE</spring-framework.version>
    <hibernate.version>4.3.2.Final</hibernate.version>
    <junit.version>4.11</junit.version>
    <log.version>1.2.14</log.version>

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>

please suggest me how to resolve this thanks

You create to complex HQL expression. I suggest to use "in" instead of long list of "=" and "or"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM