[JIRA] (HHH-16605) [6.2.2] Boolean vs Integer comparison crash
by SAI Générique (JIRA)
SAI Générique ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63a1d8d... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMjA5ZGVmNDY5... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16605?atlOrigin=eyJpIjoiMjA5ZG... ) HHH-16605 ( https://hibernate.atlassian.net/browse/HHH-16605?atlOrigin=eyJpIjoiMjA5ZG... ) [6.2.2] Boolean vs Integer comparison crash ( https://hibernate.atlassian.net/browse/HHH-16605?atlOrigin=eyJpIjoiMjA5ZG... )
Issue Type: Bug Affects Versions: 6.2.2 Assignee: Unassigned Components: query-hql Created: 15/May/2023 06:55 AM Environment: - JDK17
- payara-embedded-all 6.2023.1
- Linux Debian Priority: Major Reporter: SAI Générique ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63a1d8d... )
Hello,
When comparing data, the following predicate worked until 6.1.7.Final:
SELECT p FROM MyTable p WHERE
INTERSECTS(p.spatialdata, TO_LINESTRING( '2018-09-01 00:00:00' , '2018-09-01 23:59:59' )) = 1
However, this query results in the following stacktrace:
java.lang.IllegalArgumentException: org.hibernate.query.sqm.InterpretationException: Error interpreting query [...]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:162)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:168)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:795)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:704)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:190)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:458)
...
Caused by: org.hibernate.query.sqm.InterpretationException: Error interpreting query [...]
at org.hibernate.query.hql.internal.StandardHqlTranslator.translate(StandardHqlTranslator.java:97)
at org.hibernate.internal.AbstractSharedSessionContract.lambda$interpretHql$2(AbstractSharedSessionContract.java:744)
at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.createHqlInterpretation(QueryInterpretationCacheStandardImpl.java:141)
at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.resolveHqlInterpretation(QueryInterpretationCacheStandardImpl.java:128)
at org.hibernate.internal.AbstractSharedSessionContract.interpretHql(AbstractSharedSessionContract.java:741)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:786)
... 79 more
Caused by: java.lang.IllegalArgumentException: Can't compare test expression of type [basicType(a)33(java.lang.Boolean,16)] with element of type [basicType(a)4(java.lang.Integer,4)]
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.assertComparable(SqmCriteriaNodeBuilder.java:2098)
at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitComparisonPredicate(SemanticQueryBuilder.java:2493)
at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitComparisonPredicate(SemanticQueryBuilder.java:253)
at org.hibernate.grammars.hql.HqlParser$ComparisonPredicateContext.accept(HqlParser.java:6111)
at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitAndPredicate(SemanticQueryBuilder.java:2313)
at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitAndPredicate(SemanticQueryBuilder.java:253)
...
We were able to work this around by changing the ‘1' to 'true’:
SELECT p FROM MyTable p WHERE
INTERSECTS(p.spatialdata, TO_LINESTRING('2018-09-01 00:00:00','2018-09-01 23:59:59')) = true
Also note that this hack is not necessary anymore since version 6.x because the right hand side can be omitted altogether:
SELECT p FROM MyTable p WHERE
INTERSECTS(p.spatialdata, TO_LINESTRING('2018-09-01 00:00:00','2018-09-01 23:59:59'))
( https://hibernate.atlassian.net/browse/HHH-16605#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16605#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#100225- sha1:a5851ae )
2 years, 11 months