在hibernate 5.3.2中使用JPQL连接不相关的实体



我无法找出以下jpql查询有什么问题,我在spring启动项目中使用spring数据和hibernate 5.3.2。

select t from MdmVehicle t join MdmVehicleGateInOut g with g.vehicleNumber = t.number

下面是我得到的例外:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: in near line 1, column 68 [select t.number from in.ecomexpress.mdm.entities.MdmVehicle t join in.ecomexpress.mdm.entities.MdmVehicleGateInOut g with g.vehicleNumber = t.number]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74)
at org.hibernate.hql.internal.ast.ErrorTracker.throwQueryException(ErrorTracker.java:93)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:296)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:188)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:143)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:119)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153)
at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:597)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:706)
... 172 more

这已经作为https://hibernate.atlassian.net/browse/HHH-10953的一部分修复了,并且已经对此进行了测试,所以我必须假设您使用的是较旧的Hibernate版本(即不是您认为正在使用的版本)。

最新更新