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=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100225- sha1:a5851ae )