java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

Hibernate JIRA | Michael Wyraz | 7 years ago
  1. 0

    I have 2 mapped entities: EntityA [ id:long, testMap:Map<EnityB,Integer>, some other properties ] EntityB [ id:long, some other properties ] The mapping of EntityA is like: <class name="EntityA"> <id name="id">...</id> <map name="testMap" table="a_to_b"> <key column="a_id"/> <map-key-many-to-many column="b_id" class="EntityB"/> <element type="integer" column="int_value"/> </map> </class> Now I want to query all EntityA with a certain EnityB as map key: 1. "from a EntityA left join a.testMap b where index(b).id=?" Parameter: <Long> (id of an EntityB) 15:35:12,349 ERROR PARSER:56 - <AST>:1:94: unexpected AST node: ( java.lang.NullPointerException at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:534) at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4543) at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1289) at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4243) at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3722) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1864) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1792) at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:818) at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:604) at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651) [...] 2. "from a EntityA left join a.testMap b where index(b)=?" Parameter: <Long> (id of an EntityB) This is really strange: it tries to run the getter of EnityB.id againt a <Long> org.hibernate.PropertyAccessException: could not get a field value by reflection getter of test.EntityB.id at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:58) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:199) at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3605) [...] Caused by: java.lang.IllegalArgumentException: Can not set long field test.EntityB.id to java.lang.Long at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150) at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37) at sun.reflect.UnsafeLongFieldAccessorImpl.getLong(UnsafeLongFieldAccessorImpl.java:42) at sun.reflect.UnsafeLongFieldAccessorImpl.get(UnsafeLongFieldAccessorImpl.java:18) at java.lang.reflect.Field.get(Field.java:358) at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55) ... 67 more 3. "from a EntityA left join a.testMap b where index(b)=?" Parameter: <EntityB> 15:40:24,935 INFO IntegerType:158 - could not bind value '2009219112005957163' to parameter: 1; java.lang.Long cannot be cast to java.lang.Integer java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer at org.hibernate.type.IntegerType.set(IntegerType.java:64) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136) at org.hibernate.param.PositionalParameterSpecification.bind(PositionalParameterSpecification.java:68) at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:514) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1593) Here it thinks that the index() is of type integer.

    Hibernate JIRA | 7 years ago | Michael Wyraz
    java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
  2. 0

    I have 2 mapped entities: EntityA [ id:long, testMap:Map<EnityB,Integer>, some other properties ] EntityB [ id:long, some other properties ] The mapping of EntityA is like: <class name="EntityA"> <id name="id">...</id> <map name="testMap" table="a_to_b"> <key column="a_id"/> <map-key-many-to-many column="b_id" class="EntityB"/> <element type="integer" column="int_value"/> </map> </class> Now I want to query all EntityA with a certain EnityB as map key: 1. "from a EntityA left join a.testMap b where index(b).id=?" Parameter: <Long> (id of an EntityB) 15:35:12,349 ERROR PARSER:56 - <AST>:1:94: unexpected AST node: ( java.lang.NullPointerException at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:534) at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4543) at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1289) at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4243) at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3722) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1864) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1792) at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:818) at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:604) at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651) [...] 2. "from a EntityA left join a.testMap b where index(b)=?" Parameter: <Long> (id of an EntityB) This is really strange: it tries to run the getter of EnityB.id againt a <Long> org.hibernate.PropertyAccessException: could not get a field value by reflection getter of test.EntityB.id at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:58) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:199) at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3605) [...] Caused by: java.lang.IllegalArgumentException: Can not set long field test.EntityB.id to java.lang.Long at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150) at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37) at sun.reflect.UnsafeLongFieldAccessorImpl.getLong(UnsafeLongFieldAccessorImpl.java:42) at sun.reflect.UnsafeLongFieldAccessorImpl.get(UnsafeLongFieldAccessorImpl.java:18) at java.lang.reflect.Field.get(Field.java:358) at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55) ... 67 more 3. "from a EntityA left join a.testMap b where index(b)=?" Parameter: <EntityB> 15:40:24,935 INFO IntegerType:158 - could not bind value '2009219112005957163' to parameter: 1; java.lang.Long cannot be cast to java.lang.Integer java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer at org.hibernate.type.IntegerType.set(IntegerType.java:64) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136) at org.hibernate.param.PositionalParameterSpecification.bind(PositionalParameterSpecification.java:68) at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:514) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1593) Here it thinks that the index() is of type integer.

    Hibernate JIRA | 7 years ago | Michael Wyraz
    java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
  3. 0

    error writing vector of longs to pail - caused by inconsistent treatment of integer types?

    GitHub | 4 years ago | robinkraft
    cascading.tuple.TupleException: unable to sink into output identifier: /tmp/cascalog_reserved/0b005123-f278-4b53-8e74-a6d5f2d4594a
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    New versions of Movecraft crashing with older versions.

    GitHub | 2 years ago | striker0822
    java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
  6. 0

    ClassCastException on Attachment.getLength

    GitHub | 3 years ago | dlvenable
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

    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

      java.lang.Long cannot be cast to java.lang.Integer

      at org.hibernate.type.IntegerType.set()
    2. Hibernate
      Loader.prepareQueryStatement
      1. org.hibernate.type.IntegerType.set(IntegerType.java:64)
      2. org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154)
      3. org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
      4. org.hibernate.param.PositionalParameterSpecification.bind(PositionalParameterSpecification.java:68)
      5. org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:514)
      6. org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1593)
      6 frames