java.lang.IllegalArgumentException : Parameter does not exist as a named parameter in 异常

标签 java mysql hibernate

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) {
                 ...
    }
}

执行上述方法时出现以下异常

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 ]

需要建议来解决这个问题

最佳答案

lowerBoundupperBound 前面缺少参数指示符(冒号)。

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 "
);

如果没有这些指示符,JDBC 就不知道这些是参数,将它们与列名混淆。

关于java.lang.IllegalArgumentException : Parameter does not exist as a named parameter in 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748234/

相关文章:

php - 用 php 重置 auto_increment

Hibernate 一级缓存与查询缓存

java - "ERROR: You have an error in your SQL syntax;"in hibernate 一对多关系映射

java - 如何使用 Hibernate Session.doWork(...) 进行保存点/嵌套事务?

java - 在 tomcat 上运行计划方法

java - 在 OSX/Unix 上设置额外的 Tomcat 服务器

mysql - 除默认值外的分组依据和联系人行

java - 如何创建特定日期的倒计时?

Java:哪个 Apache Digester 类?

php - laravel 两个表的多个条件查询