title: why do I get Path expected for join when I use join key word in hql
body: <p>I have the following HQL </p>
  
  <pre><code>String FIND_PRODUCT_CLASS_ID = "SELECT pc.id FROM ProductClass pc"+ 
  " JOIN ProductGroup pg ON pc.id = pg.productClassId" +
  " JOIN Product p ON pg.id = p.id" +
  " JOIN ProductSub ps ON p.id = ps.productId WHERE ps.id =:childProductSubId";
  </code></pre>
  
  <p>When I run this query in Spring Hibernate environment, I get the following stack trace.</p>
  
  <pre><code>Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join! [SELECT pc.id FROM com.xxx.domain.ProductClass pc JOIN ProductGroup pg ON pc.id = pg.productClassId JOIN Product p ON pg.id = p.id JOIN ProductSub ps ON p.id = ps.productId WHERE ps.id =:childProductSubId]
  at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
  at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:284)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
  at org.hibernate.engine.query.spi.HQLQueryPlan.&lt;init&gt;(HQLQueryPlan.java:126)
  at org.hibernate.engine.query.spi.HQLQueryPlan.&lt;init&gt;(HQLQueryPlan.java:88)
  at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167)
  at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
  at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
  at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)
  at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:328)
  ... 146 more
  </code></pre>
  
  <p>However, if I modifiy the query without <code>join</code> keyword like below, it's succeeded.</p>
  
  <pre><code>String FIND_PRODUCT_CLASS_ID = "SELECT pc.id FROM ProductClass pc, ProductGroup pg, " +
   " Product p, ProductSub ps where pc.id = pg.productClassId "+
   " and pg.id = p.id and p.id = ps.productId and ps.id =:childProductSubId";
  </code></pre>
  
  <p>I know that I have already found the solution but I'm not sure why it doesn't work with <code>join</code> key word in HQL.  Can sombody explain this to me please? Is this something to do with the mapping? In my case objects are mapped in Hibernate layer.</p>