java.lang.IllegalArgumentException: Parameter does not exist as a named parameter in
hibernate, java, mysql
Solution
You are missing parameter designators (colons) in front of `lowerBound` and `upperBound`.
SQLQuery query = session.createSQLQuery(
"select * from data "+
"inner join route on (data.id=route.data_id and data.status=:status and data.is_active='Y' and route.owner_id= :ownerId)"+
"LIMIT :lowerBound,:upperBound "
);
Without these designators JDBC does not know that these are parameters, confusing them for column names.
Problem
``` public List<Data> List(String name, String id, int lowerBound, int upperBound) throws WiMatchException { try { Session session = getHibernateTemplate().getSessionFactory().openSession(); SQLQuery query = session.createSQLQuery("select * from data inner join route on (data.id=route.data_id and data.status=:status and data.is_active='Y' and route.owner_id= :ownerId) LIMIT lowerBound,upperBound "); query.addEntity(UserData.class); query.setString("status", status); query.setString("ownerId", ownerId); query.setInteger("lowerBound", lowerBound); query.setInteger("upperBound", upperBound); List<UserData> resList = query.list(); logger.debug("size of List() =" + resList.size()); session.close(); return resList; } catch (Exception e) { ... } } ``` When executing the above method I'm getting following exception ``` java.lang.IllegalArgumentException: Parameter lowerBound does not exist as a named parameter in [select * from data inner join route on (data.id=route.data_id and data.status=:status and data.is_active='Y' and route.owner_id= :ownerId) LIMIT lowerBound,upperBound ] ``` Need suggestions to resolve this