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

Hibernate JIRA | Vlad Mihalcea | 11 months ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  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 | 11 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 | 11 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 | 5 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

    JPA service management web app fails to init underlying DB (PostgreSQL)

    GitHub | 3 months ago | dima767
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'manageRegisteredServicesMultiActionController' defined in class path resource [org/apereo/cas/mgmt/config/CasManagementWebAppConfiguration.class]: Unsatisfied dependency expressed through method 'manageRegisteredServicesMultiActionController' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servicesManager': Invocation of init method failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
  6. 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)

    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