[hibernate-issues] [JIRA] (HHH-13905) "QueryException: could not resolve property" when upgrading from 5.3.15 to 5.4.x
Fabian (JIRA)
jira at hibernate.atlassian.net
Wed Mar 25 05:59:27 EDT 2020
Fabian ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ae7f39b48-390e-4303-92d3-3ca529447e6f ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 ) / Bug ( https://hibernate.atlassian.net/browse/HHH-13905?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 ) HHH-13905 ( https://hibernate.atlassian.net/browse/HHH-13905?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 ) "QueryException: could not resolve property" when upgrading from 5.3.15 to 5.4.x ( https://hibernate.atlassian.net/browse/HHH-13905?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 )
Issue Type: Bug Affects Versions: 5.4.0, 5.4.12 Assignee: Unassigned Created: 25/Mar/2020 02:59 AM Priority: Major Reporter: Fabian ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ae7f39b48-390e-4303-92d3-3ca529447e6f )
Hi Hibernate Team,
I´m facing a strange error when upgrading Hibernate from 5.3.15 to 5.4.X. The query
SELECT b FROM Base b where b.middle.target.field = :value
starts to fail with
java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: field of: org.example.Base [SELECT b FROM org.example.Base b where b.middle.target.field = :value]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:725)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:816)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:113)
at org.example.TestCase.issue(TestCase.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
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:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.hibernate.QueryException: could not resolve property: field of: org.example.Base [SELECT b FROM org.example.Base b where b.middle.target.field = :value]
at org.hibernate.QueryException.generateQueryException(QueryException.java:120)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:220)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:155)
at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:604)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:716)
... 18 more
Caused by: org.hibernate.QueryException: could not resolve property: field of: org.example.Base
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:73)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:67)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:2044)
at org.hibernate.hql.internal.ast.tree.FromElementType.getPropertyType(FromElementType.java:412)
at org.hibernate.hql.internal.ast.tree.FromElement.getPropertyType(FromElement.java:516)
at org.hibernate.hql.internal.ast.tree.DotNode.getDataType(DotNode.java:690)
at org.hibernate.hql.internal.ast.tree.DotNode.prepareLhs(DotNode.java:268)
at org.hibernate.hql.internal.ast.tree.DotNode.resolve(DotNode.java:208)
at org.hibernate.hql.internal.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:1045)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1294)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4715)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:4183)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2147)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:819)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:613)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:317)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:265)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:272)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192)
... 24 more
I´ve created the following repo for reproducing the issue https://github.com/Fabian-K/hibernate-issue. I tried to strip down the project as much as possible. The code works fine when using 5.3.15, it however fails with 5.4.x (I tested 5.4.0 and 5.4.12). You can reproduce it using mvn test.
It seems to be related to the use of Composite IDs for the Middle class. I already noticed that it works when
* renaming Middle.key to Middle.id and MiddleId.key to MiddleId.id
* not using a Composite ID for Middle
* using b.middle.target.id instead of b.middle.target.field in the where condition
Do you have any idea/hint about what is going on in this case?
Thanks, Fabian
( https://hibernate.atlassian.net/browse/HHH-13905#add-comment?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-13905#add-comment?atlOrigin=eyJpIjoiODc5NmMxZTk5MGUyNDEyYjgyMjg2M2UxNzZkZmM4YWUiLCJwIjoiaiJ9 )
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.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100122- sha1:092c6a7 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200325/48f0c84b/attachment.html
More information about the hibernate-issues
mailing list