今天有个朋友问我分页语句怎么写。 想了想既然忘了。 暴汗。 然后就写了下。
有两种 hql 和sql 的, hql 可以直接获取对象集合,sql那就麻烦点,sql其实也可以转使用hibernate的SQLQuery 就可以转成对象。
hql : select a from test a where exists (select c.id from (select b.id, rownum as rn from test b where rownum <= 2 * 5) c where rn > (2 - 1) * 5 and a.id = c.id)
sql : select * from (select b.*, rownum as rn from pos_info b where rownum <= 2 * 5) c where rn> (2 - 1) * 5
这两语句只限至在orcale数据库中。 因为函数rownum 只在orcale中有用。 SQL Server 中可以用top 。