Test case will be attached shortly\!
The following HQL query has been working fine in Hibernate 5.x.x:
{code:sql}DELETE FROM Event WHERE (:type IS NULL OR type = :type){code}
It seems, Hibernate fails to detect the enum, if I use another class (non-enum) in the same query it works.
Now, with 6.1.3, I am receiving the following error:
{noformat}jakarta.persistence.PersistenceException: Converting `org.hibernate.query.sqm.sql.ConversionException` to JPA `PersistenceException` : Could not determine neither the SqlTypedMapping nor the Bindable value for SqmParameter: SqmNamedParameter(type)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:165) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:175) at org.hibernate.query.sqm.internal.QuerySqmImpl.executeUpdate(QuerySqmImpl.java:659) at org.hibernate.bugs.ORMUnitTestCase.deleteEventByOrganizerdeleteEventByType(ORMUnitTestCase.java:121106) at org.hibernate.bugs.ORMUnitTestCase.hhh15233Testhhh15498Test(ORMUnitTestCase.java:10495) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:577) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.hibernate.testing.junit4.ExtendedFrameworkMethod.invokeExplosively(ExtendedFrameworkMethod.java:45) 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.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299) at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.hibernate.query.sqm.sql.ConversionException: Could not determine neither the SqlTypedMapping nor the Bindable value for SqmParameter: SqmNamedParameter(type) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.resolveSqmParameter(BaseSqmToSqlAstConverter.java:5284) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.consumeSqmParameter(BaseSqmToSqlAstConverter.java:4876) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.consumeSingleSqmParameter(BaseSqmToSqlAstConverter.java:4968) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.consumeSqmParameter(BaseSqmToSqlAstConverter.java:4963) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitNamedParameterExpression(BaseSqmToSqlAstConverter.java:4867) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitNamedParameterExpression(BaseSqmToSqlAstConverter.java:414) at org.hibernate.query.sqm.tree.expression.SqmNamedParameter.accept(SqmNamedParameter.java:56) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitIsNullPredicate(BaseSqmToSqlAstConverter.java:6684) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitIsNullPredicate(BaseSqmToSqlAstConverter.java:414) at org.hibernate.query.sqm.tree.predicate.SqmNullnessPredicate.accept(SqmNullnessPredicate.java:53) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitJunctionPredicate(BaseSqmToSqlAstConverter.java:6344) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitJunctionPredicate(BaseSqmToSqlAstConverter.java:414) at org.hibernate.query.sqm.tree.predicate.SqmJunctionPredicate.accept(SqmJunctionPredicate.java:74) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitGroupedPredicate(BaseSqmToSqlAstConverter.java:6323) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitGroupedPredicate(BaseSqmToSqlAstConverter.java:414) at org.hibernate.query.sqm.tree.predicate.SqmGroupedPredicate.accept(SqmGroupedPredicate.java:52) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitWhereClause(BaseSqmToSqlAstConverter.java:2262) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitDeleteStatement(BaseSqmToSqlAstConverter.java:1013) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.visitDeleteStatement(BaseSqmToSqlAstConverter.java:414) at org.hibernate.query.sqm.tree.delete.SqmDeleteStatement.accept(SqmDeleteStatement.java:96) at org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter.translate(BaseSqmToSqlAstConverter.java:709) at org.hibernate.query.sqm.internal.SimpleDeleteQueryPlan.createDeleteTranslator(SimpleDeleteQueryPlan.java:80) at org.hibernate.query.sqm.internal.SimpleDeleteQueryPlan.executeUpdate(SimpleDeleteQueryPlan.java:99) at org.hibernate.query.sqm.internal.QuerySqmImpl.doExecuteUpdate(QuerySqmImpl.java:678) at org.hibernate.query.sqm.internal.QuerySqmImpl.executeUpdate(QuerySqmImpl.java:648) ... 16 more{noformat} |
|