I am new to hibernate and trying to run query in hibernate but i am getting the exception that
unexpected token: ON near line 1, column 135 [SELECT A.comp_id.appRefNo ....
Here is the code
StringBuffer query = new StringBuffer("SELECT A.comp_id.appRefNo,
A.comp_id.custId from ");
query.append(LosaCustContactZ.class.getName());
query.append(" A INNER JOIN " + LosaCust.class.getName() + " B
ON ( B.comp_id.appRefNo = A.comp_id.appRefNo AND " +
"B.comp_id.custId = A.comp_id.custId) INNER JOIN " + LosaApp.class.getName() + " C
ON " + "(B.comp_id.appRefNo = A.comp_id.appRefNo) ");
query.append("WHERE C.comp_id.appRefNo != ?" + " AND C.appDt >= ? AND
A.contactT = 'PHONE'" );
if (StringUtils.isNotEmpty(phoneNums)) {
query.append(" AND A.contact IN(" + phoneNums + ")");
}
List<LosaCustContactZ> resultList = null;
try {
resultList = getHibernateTemplate().find(query.toString(),
new Object[] { appRefNo, appDate });
} catch (Exception e) {
String message = e.getMessage();
System.out.println();
}
return resultList;
what i am doing wrong ?
Thanks
Try the following code after correcting tables/columns names:
Seems like there is a mapping association missed in your
hbm.xml.
Please refer this.
No defined association in hbm.xml file
Many constructs from SQL cannot moved one-to-one to the HQL. In HQL keyword
WITH
is used instead ofON
, when joining with specific condition. This construct is specific to Hibernate and is not expected to work with other JPA providers.Chapter about HQL and especially 16.3 Associations and Joins in Hibernate Core Reference Manual are worth of reading.