From 1df2ccb1c6e84754f799ef8ecd60baabe1694bf5 Mon Sep 17 00:00:00 2001 From: rbygrave Date: Wed, 9 Jun 2021 15:19:35 +1200 Subject: [PATCH] Refactor internals DefaultRelationalQueryEngine remove unnecessary method - Remove findEach() method that took RowReader and Consumer - Use findEachRow() instead --- .../server/core/RelationalQueryEngine.java | 25 +++++------ .../server/core/RelationalQueryRequest.java | 2 +- .../query/DefaultRelationalQueryEngine.java | 42 ++++++------------- 3 files changed, 23 insertions(+), 46 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryEngine.java index 86a439def..4e34a3894 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryEngine.java @@ -22,16 +22,21 @@ public interface RelationalQueryEngine { */ List findList(RelationalQueryRequest request, RowReader reader); - /** - * Find each query using relational query. - */ - void findEach(RelationalQueryRequest request, RowReader reader, Consumer consumer); - /** * Find each while query using relational query. */ void findEach(RelationalQueryRequest request, RowReader reader, Predicate consumer); + /** + * Find each via raw consumer. + */ + void findEachRow(RelationalQueryRequest request, RowConsumer mapper); + + /** + * Find one via mapper. + */ + T findOneMapper(RelationalQueryRequest request, RowMapper mapper); + /** * Find single attribute. */ @@ -42,16 +47,6 @@ public interface RelationalQueryEngine { */ List findSingleAttributeList(RelationalQueryRequest request, Class cls); - /** - * Find one via mapper. - */ - T findOneMapper(RelationalQueryRequest request, RowMapper mapper); - - /** - * Find each via raw consumer. - */ - void findEachRow(RelationalQueryRequest request, RowConsumer mapper); - /** * Collect SQL query execution statistics. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java index c0371e546..250186c2d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java @@ -79,7 +79,7 @@ public final class RelationalQueryRequest extends AbstractSqlQueryRequest { public void findEach(Consumer consumer) { flushJdbcBatchOnQuery(); - queryEngine.findEach(this, this::createNewRow, consumer); + queryEngine.findEachRow(this, (resultSet, rowNum) -> consumer.accept(createNewRow())); } public void findEachWhile(Predicate consumer) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java index 655c0863a..b150c9c4b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java @@ -17,7 +17,6 @@ import io.ebeaninternal.server.persist.Binder; import javax.persistence.PersistenceException; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; import java.util.function.Predicate; /** @@ -60,14 +59,10 @@ public class DefaultRelationalQueryEngine implements RelationalQueryEngine { } @Override - public void findEach(RelationalQueryRequest request, RowReader reader, Predicate consumer) { + public void findEachRow(RelationalQueryRequest request, RowConsumer consumer) { try { request.executeSql(binder, SpiQuery.Type.ITERATE); - while (request.next()) { - if (!consumer.test(reader.read())) { - break; - } - } + request.mapEach(consumer); request.logSummary(); } catch (Exception e) { @@ -79,11 +74,13 @@ public class DefaultRelationalQueryEngine implements RelationalQueryEngine { } @Override - public void findEach(RelationalQueryRequest request, RowReader reader, Consumer consumer) { + public void findEach(RelationalQueryRequest request, RowReader reader, Predicate consumer) { try { request.executeSql(binder, SpiQuery.Type.ITERATE); while (request.next()) { - consumer.accept(reader.read()); + if (!consumer.test(reader.read())) { + break; + } } request.logSummary(); @@ -112,12 +109,15 @@ public class DefaultRelationalQueryEngine implements RelationalQueryEngine { } @Override - public void findEachRow(RelationalQueryRequest request, RowConsumer consumer) { + public List findList(RelationalQueryRequest request, RowReader reader) { try { request.executeSql(binder, SpiQuery.Type.LIST); - request.mapEach(consumer); + List rows = new ArrayList<>(); + while (request.next()) { + rows.add(reader.read()); + } request.logSummary(); - + return rows; } catch (Exception e) { throw new PersistenceException(errMsg(e.getMessage(), request.getSql()), e); @@ -170,22 +170,4 @@ public class DefaultRelationalQueryEngine implements RelationalQueryEngine { } } - @Override - public List findList(RelationalQueryRequest request, RowReader reader) { - try { - request.executeSql(binder, SpiQuery.Type.LIST); - List rows = new ArrayList<>(); - while (request.next()) { - rows.add(reader.read()); - } - request.logSummary(); - return rows; - } catch (Exception e) { - throw new PersistenceException(errMsg(e.getMessage(), request.getSql()), e); - - } finally { - request.close(); - } - } - }