#718 - Remove findPagedList(pageIndex, pageSize) ... migrate to setFirstRows().setMaxRows().findPagedList()

This commit is contained in:
Robin Bygrave
2016-05-20 23:04:35 +12:00
parent 662be92a16
commit b2a3f0c99b
15 changed files with 19 additions and 168 deletions
@@ -857,29 +857,6 @@ public interface EbeanServer {
*/
<T> FutureList<T> findFutureList(Query<T> query, Transaction transaction);
/**
* Return a PagedList for this query using pageIndex and pageSize.
* <p>
* The benefit of using this over just using the normal {@link Query#setFirstRow(int)} and
* {@link Query#setMaxRows(int)} is that it additionally wraps an optional call to
* {@link Query#findFutureRowCount()} to determine total row count, total page count etc.
* </p>
* <p>
* Internally this works using {@link Query#setFirstRow(int)} and {@link Query#setMaxRows(int)} on
* the query. This translates into SQL that uses limit offset, rownum or row_number
* function to limit the result set.
* </p>
*
* @param pageIndex
* The zero based index of the page.
* @param pageSize
* The number of beans to return per page.
* @return The PagedList
*
* @see Query#findPagedList(int, int)
*/
<T> PagedList<T> findPagedList(Query<T> query, Transaction transaction, int pageIndex, int pageSize);
/**
* Return a PagedList for this query using firstRow and maxRows.
* <p>
@@ -246,27 +246,6 @@ public interface ExpressionList<T> {
*/
FutureList<T> findFutureList();
/**
* Return a PagedList for this query using pageIndex and pageSize.
* <p>
* The benefit of using this over just using the normal {@link Query#setFirstRow(int)} and
* {@link Query#setMaxRows(int)} is that it additionally wraps an optional call to
* {@link Query#findFutureRowCount()} to determine total row count, total page count etc.
* </p>
* <p>
* Internally this works using {@link Query#setFirstRow(int)} and {@link Query#setMaxRows(int)} on
* the query. This translates into SQL that uses limit offset, rownum or row_number
* function to limit the result set.
* </p>
*
* @param pageIndex
* The zero based index of the page.
* @param pageSize
* The number of beans to return per page.
* @return The PagedList
*/
PagedList<T> findPagedList(int pageIndex, int pageSize);
/**
* Return a PagedList for this query using firstRow and maxRows.
* <p>
-10
View File
@@ -674,16 +674,6 @@ public abstract class Model {
return query().findMap(keyProperty, keyType);
}
/**
* Return a PagedList of all entities of the given type (use where() to specify predicates as
* needed).
* <p>
* Equivalent to {@link Query#findPagedList(int, int)}
*/
public PagedList<T> findPagedList(int pageIndex, int pageSize) {
return query().findPagedList(pageIndex, pageSize);
}
/**
* Executes a find row count query in a background thread.
* <p>
+1 -10
View File
@@ -84,7 +84,7 @@ import java.util.concurrent.Future;
* @param <T>
* the entity bean type
*
* @see Query#findPagedList(int, int)
* @see Query#findPagedList()
*/
public interface PagedList<T> {
@@ -181,15 +181,6 @@ public interface PagedList<T> {
*/
int getTotalPageCount();
/**
* Return the index position of this page. Zero based.
* <p>
* Note that if firstRows/maxRows is used rather than pageIndex/pageSize then
* this always returns 0.
* </p>
*/
int getPageIndex();
/**
* Return the page size used for this query. This is the same value as maxRows used by the query.
*/
-46
View File
@@ -812,52 +812,6 @@ public interface Query<T> {
*/
FutureList<T> findFutureList();
/**
* Return a PagedList for this query using pageIndex and pageSize.
* <p>
* The benefit of using this over just using the normal {@link Query#setFirstRow(int)} and
* {@link Query#setMaxRows(int)} is that it additionally wraps an optional call to
* {@link Query#findFutureRowCount()} to determine total row count, total page count etc.
* </p>
* <p>
* Internally this works using {@link Query#setFirstRow(int)} and {@link Query#setMaxRows(int)} on
* the query. This translates into SQL that uses limit offset, rownum or row_number function to
* limit the result set.
* </p>
*
* <h4>Example: typical use including total row count</h4>
* <pre>{@code
*
* // We want to find the first 100 new orders
* // ... 0 means first page
* // ... page size is 100
*
* PagedList<Order> pagedList
* = ebeanServer.find(Order.class)
* .where().eq("status", Order.Status.NEW)
* .order().asc("id")
* .findPagedList(0, 100);
*
* // Optional: initiate the loading of the total
* // row count in a background thread
* pagedList.loadRowCount();
*
* // fetch and return the list in the foreground thread
* List<Order> orders = pagedList.getList();
*
* // get the total row count (from the future)
* int totalRowCount = pagedList.getTotalRowCount();
*
* }</pre>
*
* @param pageIndex
* The zero based index of the page.
* @param pageSize
* The number of beans to return per page.
* @return The PagedList
*/
PagedList<T> findPagedList(int pageIndex, int pageSize);
/**
* Return a PagedList for this query using firstRow and maxRows.
* <p>
@@ -1216,12 +1216,6 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return queryFuture;
}
@Override
public <T> PagedList<T> findPagedList(Query<T> query, Transaction transaction, int pageIndex, int pageSize) {
return new LimitOffsetPagedList<T>(this, (SpiQuery<T>)query, pageIndex, pageSize);
}
@Override
public <T> PagedList<T> findPagedList(Query<T> query, Transaction transaction) {
@@ -292,11 +292,6 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
return query.findFutureList();
}
@Override
public PagedList<T> findPagedList(int pageIndex, int pageSize) {
return query.findPagedList(pageIndex, pageSize);
}
@Override
public PagedList<T> findPagedList() {
return query.findPagedList();
@@ -359,11 +359,6 @@ class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expression
return exprList.findMap(keyProperty, keyType);
}
@Override
public PagedList<T> findPagedList(int pageIndex, int pageSize) {
return exprList.findPagedList(pageIndex, pageSize);
}
@Override
public PagedList<T> findPagedList() {
return exprList.findPagedList();
@@ -25,8 +25,6 @@ public class LimitOffsetPagedList<T> implements PagedList<T> {
private final int maxRows;
private final int pageIndex;
private final Monitor monitor = new Monitor();
private int foregroundTotalRowCount = -1;
@@ -35,20 +33,6 @@ public class LimitOffsetPagedList<T> implements PagedList<T> {
private List<T> list;
/**
* Construct with pageIndex/pageSize.
*/
public LimitOffsetPagedList(EbeanServer server, SpiQuery<T> query, int pageIndex, int pageSize) {
this.server = server;
this.query = query;
this.maxRows = pageSize;
this.firstRow = pageIndex * pageSize;
this.pageIndex = pageIndex;
query.setFirstRow(firstRow);
query.setMaxRows(pageSize);
}
/**
* Construct with firstRow/maxRows.
*/
@@ -57,7 +41,6 @@ public class LimitOffsetPagedList<T> implements PagedList<T> {
this.query = query;
this.maxRows = query.getMaxRows();
this.firstRow = query.getFirstRow();
this.pageIndex = 0;
}
public void loadRowCount() {
@@ -119,10 +102,6 @@ public class LimitOffsetPagedList<T> implements PagedList<T> {
return firstRow > 0;
}
public int getPageIndex() {
return pageIndex;
}
public int getPageSize() {
return maxRows;
}
@@ -1126,11 +1126,6 @@ public class DefaultOrmQuery<T> implements SpiQuery<T> {
return server.findFutureRowCount(this, null);
}
@Override
public PagedList<T> findPagedList(int pageIndex, int pageSize) {
return server.findPagedList(this, null, pageIndex, pageSize);
}
@Override
public PagedList<T> findPagedList() {
return server.findPagedList(this, null);