java.lang.ClassCastException: org.hibernate.internal.StatelessSessionImpl cannot be cast to org.hibernate.Session

Hibernate JIRA | Holger Niehaus | 7 months ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    AbstractQueryImpl#guessType casts SessionImplementor session to Session but StatelessSession does not implement Session. Simple test: @Test public void testStatelessSession() throws Exception { StatelessSession statelessSession = sessionFactory.openStatelessSession(); String queryString = "Select * from Papa where partition_id = :partition"; SQLQuery query = statelessSession.createSQLQuery(queryString); PartitionImpl partition = new PartitionImpl("part02"); query.setParameter("partition", partition); assertThat(query.list().size(), is(0)); } Throws Exception: java.lang.ClassCastException: org.hibernate.internal.StatelessSessionImpl cannot be cast to org.hibernate.Session at org.hibernate.internal.AbstractQueryImpl.guessType(AbstractQueryImpl.java:553) at org.hibernate.internal.AbstractQueryImpl.guessType(AbstractQueryImpl.java:534) at org.hibernate.internal.AbstractQueryImpl.determineType(AbstractQueryImpl.java:519) at org.hibernate.internal.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:487) at de.pds.common.hibernatetest.HibernateTest.testStatelessSession(HibernateTest.java:2667) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    Hibernate JIRA | 7 months ago | Holger Niehaus
    java.lang.ClassCastException: org.hibernate.internal.StatelessSessionImpl cannot be cast to org.hibernate.Session

    Root Cause Analysis

    1. java.lang.ClassCastException

      org.hibernate.internal.StatelessSessionImpl cannot be cast to org.hibernate.Session

      at org.hibernate.internal.AbstractQueryImpl.guessType()
    2. Hibernate
      AbstractQueryImpl.setParameter
      1. org.hibernate.internal.AbstractQueryImpl.guessType(AbstractQueryImpl.java:553)
      2. org.hibernate.internal.AbstractQueryImpl.guessType(AbstractQueryImpl.java:534)
      3. org.hibernate.internal.AbstractQueryImpl.determineType(AbstractQueryImpl.java:519)
      4. org.hibernate.internal.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:487)
      4 frames
    3. de.pds.common
      HibernateTest.testStatelessSession
      1. de.pds.common.hibernatetest.HibernateTest.testStatelessSession(HibernateTest.java:2667)
      1 frame
    4. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      4. java.lang.reflect.Method.invoke(Method.java:601)
      4 frames
    5. JUnit
      ParentRunner.run
      1. org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      2. org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      3. org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      4. org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      5. org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      6. org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      7. org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      8. org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      9. org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      10. org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      11. org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      12. org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      13. org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      14. org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      15. org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      16. org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      16 frames
    6. JUnit4 Runner
      JUnit4TestReference.run
      1. org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      1 frame
    7. JUnit3 Runner
      RemoteTestRunner.main
      1. org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      2. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      3. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      4. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      5. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      5 frames