Java JPA分页:setFirstResult()和setMaxResults():实际分页?
JPA setFirstResult()和setMaxResults()方法是否进行真正的分页?我是说从数据库的角度来看?还是不 例如,如果一个查询返回1000000行,而我正在用这些方法分页1000页,那么数据库最终会被查询1000行还是1000000行Java JPA分页:setFirstResult()和setMaxResults():实际分页?,java,jpa,pagination,Java,Jpa,Pagination,JPA setFirstResult()和setMaxResults()方法是否进行真正的分页?我是说从数据库的角度来看?还是不 例如,如果一个查询返回1000000行,而我正在用这些方法分页1000页,那么数据库最终会被查询1000行还是1000000行 我的观点是:这些方法只是为了限制检索到的条目数量,以限制Java程序中查询结果的内存占用,还是也可以作为一种对DBMS更加保守的方法?这既是JPA实现,也是特定于数据库的,但一般来说,这是一种愚蠢的方法,例如使用偏移/限制或类似机制(基于Hi
我的观点是:这些方法只是为了限制检索到的条目数量,以限制Java程序中查询结果的内存占用,还是也可以作为一种对DBMS更加保守的方法?这既是JPA实现,也是特定于数据库的,但一般来说,这是一种愚蠢的方法,例如使用偏移/限制或类似机制(基于Hibernate的实现)
如果数据库能够以某种方式提高效率,那么相应的JPA机制也会相应地提高效率。如果没有(比如Postgres),那么最好使用自己的分页机制。注意:JPA什么都不做,它是一个API规范。您必须通过指定执行实际工作的确切持久性提供者(EclipseLink、Hibernate),使这个问题更加具体。