#56 - Polishing.

Replaced calls to `SqlRenderer.render(.)` with `SqlRenderer.toString(.)`.
And code formatting.

Original pull request: #66.
This commit is contained in:
Jens Schauder
2019-03-05 13:35:58 +01:00
parent c241cd982e
commit 169de9df0a
3 changed files with 38 additions and 21 deletions

View File

@@ -229,6 +229,7 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
* (non-Javadoc)
* @see org.springframework.data.r2dbc.function.ReactiveDataAccessStrategy#getRowMapper(java.lang.Class)
*/
@SuppressWarnings("unchecked")
@Override
public <T> BiFunction<Row, RowMetadata, T> getRowMapper(Class<T> typeToRead) {
return new EntityRowMapper<T>((RelationalPersistentEntity) getRequiredPersistentEntity(typeToRead),
@@ -262,6 +263,7 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
return mappingContext.getPersistentEntity(typeToRead);
}
@SuppressWarnings("unchecked")
private Object getWriteValue(PersistentPropertyAccessor propertyAccessor, RelationalPersistentProperty property) {
TypeInformation<?> type = property.getTypeInformation();
@@ -317,20 +319,23 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
* @see org.springframework.data.r2dbc.function.ReactiveDataAccessStrategy#select(java.lang.String, java.util.Set, org.springframework.data.domain.Sort, org.springframework.data.domain.Pageable)
*/
@Override
public String select(String table, Set<String> columns, Sort sort, Pageable page) {
public String select(String tableName, Set<String> columns, Sort sort, Pageable page) {
Table tableToUse = Table.create(table);
Table table = Table.create(tableName);
Collection<? extends Expression> selectList;
if (columns.isEmpty()) {
selectList = Collections.singletonList(tableToUse.asterisk());
selectList = Collections.singletonList(table.asterisk());
} else {
selectList = tableToUse.columns(columns);
selectList = table.columns(columns);
}
SelectFromAndOrderBy selectBuilder = StatementBuilder.select(selectList).from(table)
.orderBy(createOrderByFields(tableToUse, sort));
SelectFromAndOrderBy selectBuilder = StatementBuilder //
.select(selectList) //
.from(tableName) //
.orderBy(createOrderByFields(table, sort));
OptionalLong limit = OptionalLong.empty();
OptionalLong offset = OptionalLong.empty();
@@ -508,7 +513,7 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
* @see org.springframework.data.r2dbc.function.BindIdOperation#bindIds(io.r2dbc.spi.Statement, java.lang.Iterable)
*/
@Override
public void bindIds(Statement statement, Iterable<? extends Object> values) {
public void bindIds(Statement statement, Iterable<?> values) {
throw new UnsupportedOperationException();
}
@@ -569,7 +574,7 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
* @see org.springframework.data.r2dbc.function.BindIdOperation#bindIds(io.r2dbc.spi.Statement, java.lang.Iterable)
*/
@Override
public void bindIds(Statement statement, Iterable<? extends Object> values) {
public void bindIds(Statement statement, Iterable<?> values) {
throw new UnsupportedOperationException();
}
@@ -636,7 +641,7 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
* @see org.springframework.data.r2dbc.function.BindIdOperation#bindIds(io.r2dbc.spi.Statement, java.lang.Iterable)
*/
@Override
public void bindIds(Statement statement, Iterable<? extends Object> values) {
public void bindIds(Statement statement, Iterable<?> values) {
for (Object value : values) {
bindId(statement, value);

View File

@@ -135,10 +135,13 @@ public class SimpleR2dbcRepository<T, ID> implements ReactiveCrudRepository<T, I
BindMarker bindMarker = bindMarkers.next("id");
Table table = Table.create(entity.getTableName());
Select select = StatementBuilder.select(table.columns(columns)).from(table)
.where(Conditions.isEqual(table.column(idColumnName), SQL.bindMarker(bindMarker.getPlaceholder()))).build();
Select select = StatementBuilder //
.select(table.columns(columns)) //
.from(table) //
.where(Conditions.isEqual(table.column(idColumnName), SQL.bindMarker(bindMarker.getPlaceholder()))) //
.build();
return databaseClient.execute().sql(SqlRenderer.render(select)) //
return databaseClient.execute().sql(SqlRenderer.toString(select)) //
.bind(0, id) //
.as(entity.getJavaType()) //
.fetch() //
@@ -167,10 +170,13 @@ public class SimpleR2dbcRepository<T, ID> implements ReactiveCrudRepository<T, I
BindMarker bindMarker = bindMarkers.next("id");
Table table = Table.create(entity.getTableName());
Select select = StatementBuilder.select(table.column(idColumnName)).from(table)
.where(Conditions.isEqual(table.column(idColumnName), SQL.bindMarker(bindMarker.getPlaceholder()))).build();
Select select = StatementBuilder //
.select(table.column(idColumnName)) //
.from(table) //
.where(Conditions.isEqual(table.column(idColumnName), SQL.bindMarker(bindMarker.getPlaceholder()))) //
.build();
return databaseClient.execute().sql(SqlRenderer.render(select)) //
return databaseClient.execute().sql(SqlRenderer.toString(select)) //
.bind(0, id) //
.map((r, md) -> r) //
.first() //
@@ -230,10 +236,13 @@ public class SimpleR2dbcRepository<T, ID> implements ReactiveCrudRepository<T, I
}
Table table = Table.create(entity.getTableName());
Select select = StatementBuilder.select(table.columns(columns)).from(table)
.where(Conditions.in(table.column(idColumnName), markers)).build();
Select select = StatementBuilder
.select(table.columns(columns))
.from(table)
.where(Conditions.in(table.column(idColumnName), markers))
.build();
GenericExecuteSpec executeSpec = databaseClient.execute().sql(SqlRenderer.render(select));
GenericExecuteSpec executeSpec = databaseClient.execute().sql(SqlRenderer.toString(select));
for (int i = 0; i < ids.size(); i++) {
executeSpec = executeSpec.bind(i, ids.get(i));
@@ -250,9 +259,12 @@ public class SimpleR2dbcRepository<T, ID> implements ReactiveCrudRepository<T, I
public Mono<Long> count() {
Table table = Table.create(entity.getTableName());
Select select = StatementBuilder.select(Functions.count(table.column(getIdColumnName()))).from(table).build();
Select select = StatementBuilder //
.select(Functions.count(table.column(getIdColumnName()))) //
.from(table) //
.build();
return databaseClient.execute().sql(SqlRenderer.render(select)) //
return databaseClient.execute().sql(SqlRenderer.toString(select)) //
.map((r, md) -> r.get(0, Long.class)) //
.first() //
.defaultIfEmpty(0L);

View File

@@ -40,7 +40,7 @@ public abstract class StatementRenderUtil {
*/
public static String render(Select select, OptionalLong limit, OptionalLong offset, Dialect dialect) {
String sql = SqlRenderer.render(select);
String sql = SqlRenderer.toString(select);
// TODO: Replace with proper {@link Dialect} rendering for limit/offset.
if (limit.isPresent()) {