嗨,我有一个命名查询
@NamedQuery(name = "StudyplanCategory.findByStatusAndLimit", query = "SELECT s FROM StudyplanCategory s WHERE s.status =:status LIMIT s.start=:start,s.end=end")
我想这样设置限制:
但这在服务器启动时显示错误。我正在使用以下代码在DAO类中调用查询:
Query query = entityManager.createNamedQuery("StudyplanCategory.findByStatusAndLimit"); int end=(start*pageNumber); query.setParameter("status", status); query.setParameter("start", start); query.setParameter("end", end); return (List<StudyplanCategory>) query.getResultList();
需要设置开始和结束参数。请帮忙。
正如@DataNucleus所说,LIMIT在JPQL中不是有效的关键字。这不是指定要返回多少行的方法。这是您的操作方式:
@NamedQuery(name = "StudyplanCategory.findByStatusAndLimit", query = "SELECT s FROM StudyplanCategory s WHERE s.status =:status")
这将是调用命名查询的代码:
Query query = entityManager.createNamedQuery("StudyplanCategory.findByStatusAndLimit"); int end=(start*pageNumber); query.setParameter("status", status); query.setFirstResult(start); query.setMaxResults(end - start); return (List<StudyplanCategory>) query.getResultList();