JPA setMaxResults无效 - 查询返回所有行

时间:2013-05-10 14:15:45

标签: sql jpa eclipselink google-cloud-sql

在过去的4个小时里,我一直在撞墙,尝试不同的排列,更新图书馆等等 - 但无济于事。

我正在调用我的MySQL数据库,其中表'链接'有大约300个条目,我需要使用setFirstResult()setMaxResults()所以我可以在我的数据表中使用分页。

setFirstResult()适用于查询 - 限制返回的行数... 但setMaxResult()对限制返回的行数没有影响。

这是我的代码:

public List<Link> getAllLinks(int targetURLId, int limitStart,Integer limitEnd) {

  EntityManagerFactory emf = PersistenceManager.getInstance().getEntityManagerFactory();
  EntityManager mgr = emf.createEntityManager();

  List<Link> links;

  limitStart = 0;
  limitEnd = 10;

  try {

    Query query = mgr.createQuery("SELECT u FROM Link u ORDER BY u.links_id");
    query.setFirstResult(limitStart);
    query.setMaxResults(limitEnd);

    links = (List<Link>)query.getResultList();
    } finally {
     mgr.close();
    }
   return links;
}

SQL生成:

EJBQueryImpl(ReadAllQuery(referenceClass=Link sql="SELECT LINKS_ID, ANCHOR_TEXT, CLIENT_CATEGORY_ID, DATA_ENTERED_BY, DATE_DETECTED, DATE_EXPIRED, FINAL_TARGET_URL, FINAL_TARGET_URL_ID, LINK_BUILDING_ACTIVITY_ID, SOURCE_ID, TARGET_ID, USER_ASSIGNED_TO, USER_CAMPAIGN, USER_CATEGORY, USERS_USER_ID FROM links ORDER BY LINKS_ID ASC"))

结果是所有链接的列表 - 大约300个,而不仅仅是10个。

有什么想法吗?

这是在google app引擎上,使用cloudSQL。

0 个答案:

没有答案