title: Hibernate Query Syntax exception : org.hibernate.hql.ast.QuerySyntaxException: unexpected token
body: <p>I have a query where i am joining two tables ROuteMaster and RouteHalts. 
  When i perform inner join i am getting </p>
  
  <pre><code>org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, 
  
  column 169 [SELECT  rm.id , rm.routeCode , rm.startPlaceId , rm.endPlaceId , 
  rm.active, rm.linkedRoute FROM com.oprs.pojo.routes.RouteMaster rm  INNER JOIN 
  RouteHalts rh  on rm.id = rh.routeId  WHERE  rh.placeId = :PlaceId  
  ORDER BY  rm.id  ASC]
  </code></pre>
  
  <p>I searched through the site and found similar question and the response for it. the question referred was</p>
  
  <pre><code>Hibernate: org.hibernate.hql.ast.QuerySyntaxException: unexpected token
  </code></pre>
  
  <p>I have many-to-one mapping in RouteHalts for RouteMaster, I have defined getter and setter methods for RouteMaster in RouteHalts</p>
  
  <pre><code>&lt;many-to-one name="RouteMaster" class="com.oprs.pojo.routes.RouteMaster" 
                      fetch="join"
              foreign-key="id" column="ROUTE_ID" insert="false"
              update="false" lazy="false" /&gt;
  </code></pre>
  
  <p>but still getting the same error. Can please some one guide me.</p>
  
  <p>Mapping files</p>
  
  <pre><code>&lt;hibernate-mapping package="com.oprs.pojo.routes"&gt;
      &lt;!-- Hibernate mapping for RouteMaster table --&gt;
      &lt;class name="RouteMaster" table="OPRS_ROUTE_MASTER"&gt;
          &lt;id name="id" column="ROUTE_ID" type="java.lang.Long"&gt;
              &lt;generator class="assigned" /&gt;
          &lt;/id&gt;
          &lt;property name="startPlaceId" column="START_PLACE_ID"/&gt;
          &lt;property name="endPlaceId" column="END_PLACE_ID"/&gt;
          &lt;property name="routeCode" column="ROUTE_CODE"/&gt;
          &lt;property name="routeName" column="ROUTE_NAME"/&gt;
          &lt;property name="active" column="IS_ACTIVE"/&gt;
          &lt;property name="linkedRoute" column="LINKED_ROUTE"/&gt;
          &lt;property name="returnRouteId" column="RET_ROUTE_ID"/&gt;
          &lt;!-- Auditor Information --&gt;
          &lt;component name="auditor" class="com.oprs.pojo.base.Auditor"&gt;
              &lt;property name="createdBy" column="CREATED_BY" /&gt;
              &lt;property name="createdDate" column="CREATED_DATE" /&gt;
              &lt;property name="modifiedBy" column="MODIFIED_BY" /&gt;
              &lt;property name="modifiedDate" column="MODIFIED_DATE" /&gt;
          &lt;/component&gt;
          &lt;many-to-one  name="RouteHalts" class="com.oprs.pojo.routes.RouteHalts" fetch="join"
              foreign-key="routeId" column="ROUTE_ID" insert="false"
              update="false" lazy="false" /&gt;
      &lt;/class&gt;
  
      &lt;!-- Hibernate mapping for RouteHalts table --&gt;
      &lt;class name="RouteHalts" table="OPRS_ROUTE_HALTS"&gt;
          &lt;id name="id" column="HALTS_ID" type="java.lang.Long"&gt;
              &lt;generator class="assigned" /&gt;
          &lt;/id&gt;
          &lt;property name="routeId" column="ROUTE_ID"/&gt;
          &lt;property name="placeId" column="PLACE_ID"/&gt;
          &lt;property name="seqNo" column="SEQ_NO"/&gt;
          &lt;property name="distanceKM" column="DISTANCE_KM"/&gt;
          &lt;property name="border" column="IS_BORDER"/&gt;
          &lt;property name="tolls" column="NO_OF_TOLLS"/&gt;       
          &lt;!-- Auditor Information --&gt;
          &lt;component name="auditor" class="com.oprs.pojo.base.Auditor"&gt;
              &lt;property name="createdBy" column="CREATED_BY" /&gt;
              &lt;property name="createdDate" column="CREATED_DATE" /&gt;
              &lt;property name="modifiedBy" column="MODIFIED_BY" /&gt;
              &lt;property name="modifiedDate" column="MODIFIED_DATE" /&gt;
          &lt;/component&gt;
      &lt;/class&gt;
  
  
  POJO of Route Master
  </code></pre>
  
  <p>public class RouteMaster extends Persistent {</p>
  
  <pre><code>private static final long serialVersionUID = -5710336066048392949L;
  
  private Long startPlaceId;
  private Long endPlaceId;
  private Long returnRouteId;
  private String startPlaceCode;
  private String endPlaceCode;
  private String startPlaceName;
  private String endPlaceName;
  private String routeCode;
  private String routeName;
  private String active;
  private Auditor auditor;
  private boolean revervseRoute;
  private String linkedRoute = AppConstants.N;
  private Map&lt;Double, RouteHalts&gt; haltsMap;
  private RouteHalts routeHalts;
  
  
  public RouteHalts getRouteHalts() {
      return routeHalts;
  }
  
  public void setRouteHalts(RouteHalts routeHalts) {
      this.routeHalts = routeHalts;
  }
  
  public Long getStartPlaceId() {
      return startPlaceId;
  }
  
  public void setStartPlaceId(Long startPlaceId) {
      this.startPlaceId = startPlaceId;
  }
  
  public Long getEndPlaceId() {
      return endPlaceId;
  }
  
  public void setEndPlaceId(Long endPlaceId) {
      this.endPlaceId = endPlaceId;
  }
  
  public String getStartPlaceCode() {
  return startPlaceCode;
  }
  
  public void setStartPlaceCode(String startPlaceCode) {
  this.startPlaceCode = startPlaceCode;
  }
  
  public String getEndPlaceCode() {
  return endPlaceCode;
  }
  
  public void setEndPlaceCode(String endPlaceCode) {
  this.endPlaceCode = endPlaceCode;
  }
  
  public Long getReturnRouteId() {
      return returnRouteId;
  }
  
  public void setReturnRouteId(Long returnRouteId) {
      this.returnRouteId = returnRouteId;
  }
  
  public String getRouteCode() {
  return routeCode;
  }
  
  public void setRouteCode(String routeCode) {
  this.routeCode = routeCode;
  }
  
  public Auditor getAuditor() {
  return auditor;
  }
  
  public void setAuditor(Auditor auditor) {
  this.auditor = auditor;
  }
  
  public String getStartPlaceName() {
      return startPlaceName;
  }
  
  public void setStartPlaceName(String startPlaceName) {
      this.startPlaceName = startPlaceName;
  }
  
  public String getEndPlaceName() {
      return endPlaceName;
  }
  
  public void setEndPlaceName(String endPlaceName) {
      this.endPlaceName = endPlaceName;
  }
  
  public String getActive() {
      return active;
  }
  
  public void setActive(String active) {
      this.active = active;
  }
  
  public Map&lt;Double, RouteHalts&gt; getHaltsMap() {
      return haltsMap;
  }
  
  public void setHaltsMap(Map&lt;Double, RouteHalts&gt; haltsMap) {
      this.haltsMap = haltsMap;
  }
  
  public boolean isRevervseRoute() {
      return revervseRoute;
  }
  
  public void setRevervseRoute(boolean revervseRoute) {
      this.revervseRoute = revervseRoute;
  }
  
  public String getLinkedRoute() {
      return linkedRoute;
  }
  
  public void setLinkedRoute(String linkedRoute) {
      this.linkedRoute = linkedRoute;
  }
  
  public String getRouteName() {
      return routeName;
  }
  
  public void setRouteName(String routeName) {
      this.routeName = routeName;
  }
  </code></pre>
  
  <p>}</p>
  
  <pre><code>POJO of RouteHalts
  </code></pre>
  
  <p>public class RouteHalts extends Persistent {</p>
  
  <pre><code>private static final long serialVersionUID = -1491637903595290895L;
  private Long placeId;
  private Long routeId;
  private String placeCode;
  private Double seqNo;
  private Double distanceKM;
  private boolean border;
  private Auditor auditor;
  
  private String placeName;
  private String stateCode;
  private String stopType;
  private String departureTime;
  private Integer tolls;
  private String platformNo;
  private Long stopTypeId;
  private Integer linkSequenceNo;
  private String actualTime;
  private int arrivalDay;
  
  public String getStateCode() {
      return stateCode;
  }
  
  public void setStateCode(String stateCode) {
      this.stateCode = stateCode;
  }
  
  public Long getRouteId() {
      return routeId;
  }
  
  public void setRouteId(Long routeId) {
      this.routeId = routeId;
  }
  
  public Long getPlaceId() {
      return placeId;
  }
  
  public void setPlaceId(Long placeId) {
      this.placeId = placeId;
  }
  
  public String getPlaceCode() {
  return placeCode;
  }
  
  public void setPlaceCode(String placeCode) {
  this.placeCode = placeCode;
  }
  
  public Double getDistanceKM() {
  return distanceKM;
  }
  
  public void setDistanceKM(Double distanceKM) {
  this.distanceKM = distanceKM;
  }
  
  public boolean isBorder() {
      return border;
  }
  
  public void setBorder(boolean border) {
      this.border = border;
  }
  
  public Auditor getAuditor() {
  return auditor;
  }
  
  public void setAuditor(Auditor auditor) {
  this.auditor = auditor;
  }
  
  public String getPlaceName() {
      return placeName;
  }
  
  public void setPlaceName(String placeName) {
      this.placeName = placeName;
  }
  
  public Double getSeqNo() {
      return seqNo;
  }
  
  public void setSeqNo(Double seqNo) {
      this.seqNo = seqNo;
  }
  
  public String getStopType() {
      return stopType;
  }
  
  public void setStopType(String stopType) {
      this.stopType = stopType;
  }
  
  public String getDepartureTime() {
      return departureTime;
  }
  
  public void setDepartureTime(String departureTime) {
      this.departureTime = departureTime;
  }
  
  public Integer getTolls() {
      return tolls;
  }
  
  public void setTolls(Integer tolls) {
      this.tolls = tolls;
  }
  
  public String getPlatformNo() {
      return platformNo;
  }
  
  public void setPlatformNo(String platformNo) {
      this.platformNo = platformNo;
  }
  
  public Long getStopTypeId() {
      return stopTypeId;
  }
  
  public void setStopTypeId(Long stopTypeId) {
      this.stopTypeId = stopTypeId;
  }
  
  public Integer getLinkSequenceNo() {
      return linkSequenceNo;
  }
  
  public void setLinkSequenceNo(Integer linkSequenceNo) {
      this.linkSequenceNo = linkSequenceNo;
  }
  
  public int getArrivalDay() {
      return arrivalDay;
  }
  
  public void setArrivalDay(int arrivalDay) {
      this.arrivalDay = arrivalDay;
  }
  
  public String getActualTime() {
      return actualTime;
  }
  
  public void setActualTime(String actualTime) {
      this.actualTime = actualTime;
  }
  </code></pre>
  
  <p>}</p>