javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults

Hibernate JIRA | Vlad Mihalcea | 10 months ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    Now that stored procedure tests have been added, I noticed that on 5.2.0 neither one of the REFCURSOR tests works anymore. To replicate it, first set up tests to run on PostgreSQL: {noformat} > gradle clean testClasses -Pdb=pgsql {noformat} Then run the {{org.hibernate.test.procedure.PostgreSQLStoredProcedureTest#testStoredProcedureOutParameter}} test. You'll get the following error: {noformat} javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) at org.hibernate.procedure.internal.ProcedureCallImpl.execute(ProcedureCallImpl.java:643) at org.hibernate.test.procedure.PostgreSQLStoredProcedureTest.testStoredProcedureOutParameter(PostgreSQLStoredProcedureTest.java:184) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) {noformat} Because the input parameters are doubled: {code:java} 13:28:46,836 DEBUG SQL:92 - {call sp_count_phones(?,?,?,?)} 13:28:46,838 TRACE BasicBinder:65 - binding parameter [1] as [BIGINT] - [1] 13:28:46,838 TRACE BasicBinder:65 - binding parameter [2] as [BIGINT] - [1] 13:28:46,844 WARN SqlExceptionHelper:129 - SQL Error: 0, SQLState: 42883 {code} Even if there were only two registrations: {code:java} StoredProcedureQuery query = entityManager.createStoredProcedureQuery( "sp_count_phones" ); query.registerStoredProcedureParameter( "personId", Long.class, ParameterMode.IN ); query.registerStoredProcedureParameter( "phoneCount", Long.class, ParameterMode.OUT ); query.setParameter( "personId", 1L ); query.execute(); Long phoneCount = (Long) query.getOutputParameterValue( "phoneCount" ); {code} Most likely, the issue comes from {{ProcedureCallImpl}} where in the {{registerStoredProcedureParameter}} method, the {{registerParameter}} method is called twice: {code:java} registerParameter( (ParameterRegistrationImplementor) registerParameter( parameterName, type, mode ) ); {code}

    Hibernate JIRA | 10 months ago | Vlad Mihalcea
    javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults
  2. 0

    Now that stored procedure tests have been added, I noticed that on 5.2.0 neither one of the REFCURSOR tests works anymore. To replicate it, first set up tests to run on PostgreSQL: {noformat} > gradle clean testClasses -Pdb=pgsql {noformat} Then run the {{org.hibernate.test.procedure.PostgreSQLStoredProcedureTest#testStoredProcedureOutParameter}} test. You'll get the following error: {noformat} javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) at org.hibernate.procedure.internal.ProcedureCallImpl.execute(ProcedureCallImpl.java:643) at org.hibernate.test.procedure.PostgreSQLStoredProcedureTest.testStoredProcedureOutParameter(PostgreSQLStoredProcedureTest.java:184) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) {noformat} Because the input parameters are doubled: {code:java} 13:28:46,836 DEBUG SQL:92 - {call sp_count_phones(?,?,?,?)} 13:28:46,838 TRACE BasicBinder:65 - binding parameter [1] as [BIGINT] - [1] 13:28:46,838 TRACE BasicBinder:65 - binding parameter [2] as [BIGINT] - [1] 13:28:46,844 WARN SqlExceptionHelper:129 - SQL Error: 0, SQLState: 42883 {code} Even if there were only two registrations: {code:java} StoredProcedureQuery query = entityManager.createStoredProcedureQuery( "sp_count_phones" ); query.registerStoredProcedureParameter( "personId", Long.class, ParameterMode.IN ); query.registerStoredProcedureParameter( "phoneCount", Long.class, ParameterMode.OUT ); query.setParameter( "personId", 1L ); query.execute(); Long phoneCount = (Long) query.getOutputParameterValue( "phoneCount" ); {code} Most likely, the issue comes from {{ProcedureCallImpl}} where in the {{registerStoredProcedureParameter}} method, the {{registerParameter}} method is called twice: {code:java} registerParameter( (ParameterRegistrationImplementor) registerParameter( parameterName, type, mode ) ); {code}

    Hibernate JIRA | 10 months ago | Vlad Mihalcea
    javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults
  3. 0

    Spring Data error on Query after detach

    Stack Overflow | 4 months ago | Gavi
    javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.myapp.core.model.Location
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Astyanax javax.persistence.PersistenceException: failed to construct entity

    Google Groups | 4 years ago | Joe Greenawalt
    javax.persistence.PersistenceException: failed to get entity f33605bb-d748-447f-946c-10929753ce4d at com.netflix.astyanax.entitystore.DefaultEntityManager.get(DefaultEntityManager.java:227)
  6. 0

    GitHub comment 25#65808909

    GitHub | 2 years ago | pp23
    javax.persistence.PersistenceException: No Persistence provider for EntityManager named Service at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.configure(QuamoDAOBase.java:118) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.configure(QuamoDAOBase.java:113) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.getEntityManagerFactory(QuamoDAOBase.java:132) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.createEntityManager(QuamoDAOBase.java:152) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.executeInTransaction(QuamoDAOBase.java:359) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.executeInTransaction(QuamoDAOBase.java:345) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.executeInTransaction(QuamoDAOBase.java:336) at de.devboost.quamo.metricprocessor.data.dao.QuamoDAOBase.executeInTransaction(QuamoDAOBase.java:328) at de.devboost.quamo.metricprocessor.base.AbstractMetricProcessor.<init>(AbstractMetricProcessor.java:20) at de.devboost.quamo.metricprocessor.metric.NumberOfNatSpecSentences.<init>(NumberOfNatSpecSentences.java:11) at de.devboost.quamo.metricprocessor.rest.MetricProcessorRestController.metricProcessorNatSpecInput(MetricProcessorRestController.java:43)

    1 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. javax.persistence.PersistenceException

      org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults

      at org.hibernate.internal.ExceptionConverterImpl.convert()
    2. Hibernate
      ExceptionConverterImpl.convert
      1. org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
      2. org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
      2 frames
    3. org.hibernate.procedure
      ProcedureCallImpl.execute
      1. org.hibernate.procedure.internal.ProcedureCallImpl.execute(ProcedureCallImpl.java:643)
      1 frame
    4. org.hibernate.test
      PostgreSQLStoredProcedureTest.testStoredProcedureOutParameter
      1. org.hibernate.test.procedure.PostgreSQLStoredProcedureTest.testStoredProcedureOutParameter(PostgreSQLStoredProcedureTest.java:184)
      1 frame
    5. Java RT
      NativeMethodAccessorImpl.invoke0
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      1 frame