java.lang.ClassCastException: org.hibernate.ejb.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType

Hibernate JIRA | scLee | 6 years ago
  1. 0

    [HHH-5792] Unable to JOIN embedded objects in Criteria API - Hibernate JIRA

    atlassian.net | 11 months ago
    java.lang.ClassCastException: org.hibernate.ejb.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType
  2. Speed up your debug routine!

    Automated exception search integrated into your IDE

  3. 0

    When attempting to traverse a property path without using the generated Metamodel, a ClassCastException in the domain when the mapping is as follows: {noformat} Entity -> Embeddable -> ManyToOne -> Basic(String) {noformat} And the path is accessed in the following way {noformat} root.join("embeddedType", JoinType.LEFT).join("manyToOneType", JoinType.LEFT).get("value") {noformat} When the join for the embedded type is accessed using a Metamodel derived path, this works as expected. I've attached a test case & stack trace generated illustrating both. {noformat} java.lang.ClassCastException: org.hibernate.jpa.internal.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType at org.hibernate.jpa.criteria.path.AbstractFromImpl.locateManagedType(AbstractFromImpl.java:139) at org.hibernate.jpa.criteria.path.AbstractFromImpl.locateAttributeInternal(AbstractFromImpl.java:133) at org.hibernate.jpa.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:212) at org.hibernate.jpa.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:419) at uk.co.iizuka.expression.jpa.CriteriaTest.test(CriteriaTest.java:141) 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:606) 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.RunBefores.evaluate(RunBefores.java:26) 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) {noformat}

    Hibernate JIRA | 3 years ago | Matt Todd
    java.lang.ClassCastException: org.hibernate.jpa.internal.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType
  4. 0

    When attempting to traverse a property path without using the generated Metamodel, a ClassCastException in the domain when the mapping is as follows: {noformat} Entity -> Embeddable -> ManyToOne -> Basic(String) {noformat} And the path is accessed in the following way {noformat} root.join("embeddedType", JoinType.LEFT).join("manyToOneType", JoinType.LEFT).get("value") {noformat} When the join for the embedded type is accessed using a Metamodel derived path, this works as expected. I've attached a test case & stack trace generated illustrating both. {noformat} java.lang.ClassCastException: org.hibernate.jpa.internal.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType at org.hibernate.jpa.criteria.path.AbstractFromImpl.locateManagedType(AbstractFromImpl.java:139) at org.hibernate.jpa.criteria.path.AbstractFromImpl.locateAttributeInternal(AbstractFromImpl.java:133) at org.hibernate.jpa.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:212) at org.hibernate.jpa.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:419) at uk.co.iizuka.expression.jpa.CriteriaTest.test(CriteriaTest.java:141) 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:606) 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.RunBefores.evaluate(RunBefores.java:26) 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) {noformat}

    Hibernate JIRA | 3 years ago | Matt Todd
    java.lang.ClassCastException: org.hibernate.jpa.internal.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType

    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. java.lang.ClassCastException

      org.hibernate.ejb.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType

      at org.hibernate.ejb.criteria.path.AbstractFromImpl.locateManagedType()
    2. Hibernate EJB
      AbstractFromImpl.join
      1. org.hibernate.ejb.criteria.path.AbstractFromImpl.locateManagedType(AbstractFromImpl.java:151)
      2. org.hibernate.ejb.criteria.path.AbstractFromImpl.locateAttributeInternal(AbstractFromImpl.java:145)
      3. org.hibernate.ejb.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:216)
      4. org.hibernate.ejb.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:449)
      5. org.hibernate.ejb.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:433)
      5 frames
    3. foo
      CriteriaApiTest.embeddableInPath
      1. foo.CriteriaApiTest.embeddableInPath(CriteriaApiTest.java:45)
      1 frame