From 54530248a5ba2fdd9aa2a79adbf389f524ac2920 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 2 Mar 2018 13:25:55 +1300 Subject: [PATCH] #1312 - ENH: added SqlRow factory method to RawSqlService Support the PR added binaryOptimizedUUID --- src/main/java/io/ebean/RawSqlBuilder.java | 8 +++----- src/main/java/io/ebean/service/SpiRawSqlService.java | 7 +++++-- .../io/ebeaninternal/server/rawsql/DRawSqlService.java | 5 +++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/io/ebean/RawSqlBuilder.java b/src/main/java/io/ebean/RawSqlBuilder.java index 44121962c..0df4ac184 100644 --- a/src/main/java/io/ebean/RawSqlBuilder.java +++ b/src/main/java/io/ebean/RawSqlBuilder.java @@ -26,12 +26,10 @@ public interface RawSqlBuilder { } /** - * Create and return a SqlRow based on the resultSet and the dbTrueValue. - * @throws SQLException + * Create and return a SqlRow based on the resultSet with dbTrueValue and binaryOptimizedUUID options. */ - static SqlRow sqlRow(ResultSet resultSet, final String dbTrueValue) throws SQLException { - return XServiceProvider.rawSql().sqlRow(resultSet, dbTrueValue); - + static SqlRow sqlRow(ResultSet resultSet, final String dbTrueValue, boolean binaryOptimizedUUID) throws SQLException { + return XServiceProvider.rawSql().sqlRow(resultSet, dbTrueValue, binaryOptimizedUUID); } /** diff --git a/src/main/java/io/ebean/service/SpiRawSqlService.java b/src/main/java/io/ebean/service/SpiRawSqlService.java index 4d201fc58..323d3f055 100644 --- a/src/main/java/io/ebean/service/SpiRawSqlService.java +++ b/src/main/java/io/ebean/service/SpiRawSqlService.java @@ -29,7 +29,10 @@ public interface SpiRawSqlService { /** * Create based on a JDBC ResultSet. - * @throws SQLException + * + * @param resultSet The ResultSet row to read as a SqlRow + * @param dbTrueValue The DB true value + * @param binaryOptimizedUUID Flag set to true if the UUID value is stored as optimised binary(16) */ - SqlRow sqlRow(ResultSet resultSet, String dbTrueValue) throws SQLException; + SqlRow sqlRow(ResultSet resultSet, String dbTrueValue, boolean binaryOptimizedUUID) throws SQLException; } diff --git a/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java b/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java index 27f90a017..dd573111b 100644 --- a/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java +++ b/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java @@ -34,10 +34,11 @@ public class DRawSqlService implements SpiRawSqlService { } @Override - public SqlRow sqlRow(ResultSet resultSet, String dbTrueValue) throws SQLException { + public SqlRow sqlRow(ResultSet resultSet, String dbTrueValue, boolean binaryOptimizedUUID) throws SQLException { + ResultSetMetaData meta = resultSet.getMetaData(); int estCap = (int) (meta.getColumnCount() / 0.7f) + 1; - DefaultSqlRow ret = new DefaultSqlRow(estCap, 0.75f, dbTrueValue); + DefaultSqlRow ret = new DefaultSqlRow(estCap, 0.75f, dbTrueValue, binaryOptimizedUUID); for (int i = 1; i <= meta.getColumnCount(); i++) { String name = meta.getColumnLabel(i);