java报错beyond number of declared ordinal parameters. Remember

学习 时间:2026-03-30 11:42:56 阅读:5879
java报错beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based!问题就出在这里public Result getAdminRecordList(VOFilter filter) {Result r = new Result();Page page = filter.getPage();EntityManager em = getEntityManager();try {Query query = em.createQuery(" select count(o) from log_login as o");Long count = (Long) query.getSingleResult();page.setCount(count);String jsql = " from log_login as o";if (!StringUtil.isEmpty(filter.getKeyWord())) {jsql += " where o.name like ? ";}if (filter.getOrders().size() > 0) {jsql += " order by ";for (Order order : filter.getOrders()) {if ("id".equals(order.getField())) {jsql += "o.id";} else if ("logtime".equals(order.getField())) {jsql += "o.logtime";} else if ("name".equals(order.getField())) {jsql += "o.name";} else if ("result".equals(order.getField())) {jsql += "o.result";} else if ("ip".equals(order.getField())) {jsql += "o.ip";} else {jsql +="o.ip";}if (order.getDirection() == Order.DESC) {jsql += " desc,";} else {jsql += " asc ,";}}jsql = jsql.substring(0, jsql.length() - 1);}query = em.createQuery(jsql);query.setFirstResult(page.getStartRowNum());query.setMaxResults(page.getPageSize());if (!StringUtil.isEmpty(filter.getKeyWord())) {query.setParameter(1, "%" + filter.getKeyWord() + "%");query.setParameter(2, "%" + filter.getKeyWord() + "%");}r.setData(query.getResultList());r.setPage(page);return r;} finally {if (em != null) {em.close();}}}

最佳回答

明理的水蜜桃

清脆的胡萝卜

2026-03-30 11:42:56

hql多了参数了,你就一个占位符 - ,却使用了query。setParameter(2,"%" + filter。getKeyWord() + "%"); 再问: 谢谢。。昨天就解决了。。。忘了来看。。。删掉query。setParameter(2, "%" + filter。getKeyWord() + "%"); 就可以了

最新回答共有2条回答

  • 靓丽的楼房
    回复
    2026-03-30 11:42:56

    hql多了参数了,你就一个占位符 - ,却使用了query。setParameter(2,"%" + filter。getKeyWord() + "%"); 再问: 谢谢。。昨天就解决了。。。忘了来看。。。删掉query。setParameter(2, "%" + filter。getKeyWord() + "%"); 就可以了

上一篇 苏丹3染色为什么要用显微镜观察

下一篇 解几何题,要经过,