[JIRA] (HHH-15498) Delete Query fails when NULL is being used for enum column in where clause
by Severin Hamader (JIRA)
Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYjAxYmI1Yjg2... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiYjAxYm... ) HHH-15498 ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiYjAxYm... ) Delete Query fails when NULL is being used for enum column in where clause ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiYjAxYm... )
Change By: Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... )
Test case will be attached shortly\! : [https://github.com/hibernate/hibernate-test-case-templates/pull/204|https...]
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.deleteEventByType(ORMUnitTestCase.java:106)
at org.hibernate.bugs.ORMUnitTestCase.hhh15498Test(ORMUnitTestCase.java:95)
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}
( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100206- sha1:8e0b99e )
3 years, 7 months
[JIRA] (HHH-15498) Delete Query fails when NULL is being used for enum column in where clause
by Severin Hamader (JIRA)
Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMDczMDZkYmJi... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiMDczMD... ) HHH-15498 ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiMDczMD... ) Delete Query fails when NULL is being used for enum column in where clause ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiMDczMD... )
Change By: Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... )
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. deleteEventByOrganizer deleteEventByType (ORMUnitTestCase.java: 121 106 )
at org.hibernate.bugs.ORMUnitTestCase. hhh15233Test hhh15498Test (ORMUnitTestCase.java: 104 95 )
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}
( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100206- sha1:8e0b99e )
3 years, 7 months
[JIRA] (HHH-15498) Delete Query fails when NULL is being used for enum column in where clause
by Severin Hamader (JIRA)
Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNjIxOTQyY2Fh... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiNjIxOT... ) HHH-15498 ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiNjIxOT... ) Delete Query fails when NULL is being used for enum column in where clause ( https://hibernate.atlassian.net/browse/HHH-15498?atlOrigin=eyJpIjoiNjIxOT... )
Issue Type: Bug Affects Versions: 6.1.3 Assignee: Unassigned Created: 11/Sep/2022 04:17 AM Priority: Major Reporter: Severin Hamader ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... )
Test case will be attached shortly!
The following HQL query has been working fine in Hibernate 5.x.x:
DELETE FROM Event WHERE (: type IS NULL OR type = : type )
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:
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.deleteEventByOrganizer(ORMUnitTestCase.java:121)
at org.hibernate.bugs.ORMUnitTestCase.hhh15233Test(ORMUnitTestCase.java:104)
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
( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-15498#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100206- sha1:8e0b99e )
3 years, 7 months