diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java index a8a31d8d6..c12534146 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java @@ -27,7 +27,7 @@ public abstract class AbstractSqlQueryRequest { protected final SpiEbeanServer server; - protected SpiTransaction trans; + protected SpiTransaction transaction; private boolean createdTransaction; @@ -47,18 +47,18 @@ public abstract class AbstractSqlQueryRequest { AbstractSqlQueryRequest(SpiEbeanServer server, SpiSqlBinding query, Transaction t) { this.server = server; this.query = query; - this.trans = (SpiTransaction) t; + this.transaction = (SpiTransaction) t; } /** * Create a transaction if none currently exists. */ public void initTransIfRequired() { - if (trans == null) { - trans = server.currentServerTransaction(); - if (trans == null || !trans.isActive()) { + if (transaction == null) { + transaction = server.currentServerTransaction(); + if (transaction == null || !transaction.isActive()) { // create a local readOnly transaction - trans = server.createReadOnlyTransaction(null); + transaction = server.createReadOnlyTransaction(null); createdTransaction = true; } } @@ -69,26 +69,18 @@ public abstract class AbstractSqlQueryRequest { */ public void endTransIfRequired() { if (createdTransaction) { - trans.commit(); + transaction.commit(); } } protected void flushJdbcBatchOnQuery() { - if (trans.isFlushOnQuery()) { - trans.flush(); + if (transaction.isFlushOnQuery()) { + transaction.flush(); } } - public EbeanServer getServer() { - return server; - } - - public SpiTransaction getTransaction() { - return trans; - } - public boolean isLogSql() { - return trans.isLogSql(); + return transaction.isLogSql(); } /** @@ -126,7 +118,6 @@ public abstract class AbstractSqlQueryRequest { * Prepare the SQL taking into account named bind parameters. */ private void prepareSql() { - String sql = query.getQuery(); BindParams bindParams = query.getBindParams(); if (!bindParams.isEmpty()) { @@ -137,7 +128,6 @@ public abstract class AbstractSqlQueryRequest { } private String limitOffset(String sql) { - int firstRow = query.getFirstRow(); int maxRows = query.getMaxRows(); if (firstRow > 0 || maxRows > 0) { @@ -155,10 +145,8 @@ public abstract class AbstractSqlQueryRequest { } protected void executeAsSql(Binder binder) throws SQLException { - prepareSql(); - Connection conn = trans.getInternalConnection(); - + Connection conn = transaction.getInternalConnection(); pstmt = conn.prepareStatement(sql); if (query.getTimeout() > 0) { pstmt.setQueryTimeout(query.getTimeout()); @@ -166,14 +154,12 @@ public abstract class AbstractSqlQueryRequest { if (query.getBufferFetchSizeHint() > 0) { pstmt.setFetchSize(query.getBufferFetchSizeHint()); } - BindParams bindParams = query.getBindParams(); if (!bindParams.isEmpty()) { this.bindLog = binder.bind(bindParams, pstmt, conn); } - if (isLogSql()) { - trans.logSql(Str.add(TrimLogSql.trim(sql), "; --bind(", bindLog, ")")); + transaction.logSql(Str.add(TrimLogSql.trim(sql), "; --bind(", bindLog, ")")); } setResultSet(pstmt.executeQuery(), null); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java index 7f581ebc1..0dd1857c3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java @@ -50,7 +50,7 @@ public final class DtoQueryRequest extends AbstractSqlQueryRequest { ormQuery.setManualId(); // execute the underlying ORM query returning the ResultSet - SpiResultSet result = server.findResultSet(ormQuery, trans); + SpiResultSet result = server.findResultSet(ormQuery, transaction); this.pstmt = result.getStatement(); this.sql = ormQuery.getGeneratedSql(); setResultSet(result.getResultSet(), ormQuery.getQueryPlanKey()); 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 54f42ec87..7850139c7 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 @@ -100,9 +100,7 @@ public final class RelationalQueryRequest extends AbstractSqlQueryRequest { * Build the list of property names. */ private String[] getPropertyNames() throws SQLException { - ResultSetMetaData metaData = resultSet.getMetaData(); - int columnsPlusOne = metaData.getColumnCount() + 1; ArrayList propNames = new ArrayList<>(columnsPlusOne - 1); for (int i = 1; i < columnsPlusOne; i++) { @@ -115,9 +113,7 @@ public final class RelationalQueryRequest extends AbstractSqlQueryRequest { * Read and return the next SqlRow. */ public SqlRow createNewRow() throws SQLException { - rows++; - SqlRow sqlRow = queryEngine.createSqlRow(estimateCapacity); int index = 0; for (String propertyName : propertyNames) { @@ -129,9 +125,9 @@ public final class RelationalQueryRequest extends AbstractSqlQueryRequest { } public void logSummary() { - if (trans.isLogSummary()) { + if (transaction.isLogSummary()) { long micros = (System.nanoTime() - startNano) / 1000L; - trans.logSummary("SqlQuery rows[" + rows + "] micros[" + micros + "] bind[" + bindLog + "]"); + transaction.logSummary("SqlQuery rows[" + rows + "] micros[" + micros + "] bind[" + bindLog + "]"); } } @@ -144,7 +140,6 @@ public final class RelationalQueryRequest extends AbstractSqlQueryRequest { } public List mapList(RowMapper mapper) throws SQLException { - List list = new ArrayList<>(); while (next()) { list.add(mapper.map(resultSet, rows++));