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
Many constructs from SQL cannot moved one-to-one to the HQL. In HQL keyword WITH
is used instead of ON
, 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.
Seems like there is a mapping association missed in your hbm.xml.
Please refer this.
No defined association in hbm.xml file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With