#475 - Polishing.
Extract mapping target type into field instead of obtaining it each time from EntityMetadata.
This commit is contained in:
@@ -56,6 +56,7 @@ class R2dbcQueryCreator extends RelationalQueryCreator<PreparedOperation<?>> {
|
|||||||
private final ReactiveDataAccessStrategy dataAccessStrategy;
|
private final ReactiveDataAccessStrategy dataAccessStrategy;
|
||||||
private final RelationalEntityMetadata<?> entityMetadata;
|
private final RelationalEntityMetadata<?> entityMetadata;
|
||||||
private final List<String> projectedProperties;
|
private final List<String> projectedProperties;
|
||||||
|
private final Class<?> entityToRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new instance of this class with the given {@link PartTree}, {@link ReactiveDataAccessStrategy},
|
* Creates new instance of this class with the given {@link PartTree}, {@link ReactiveDataAccessStrategy},
|
||||||
@@ -78,6 +79,7 @@ class R2dbcQueryCreator extends RelationalQueryCreator<PreparedOperation<?>> {
|
|||||||
this.dataAccessStrategy = dataAccessStrategy;
|
this.dataAccessStrategy = dataAccessStrategy;
|
||||||
this.entityMetadata = entityMetadata;
|
this.entityMetadata = entityMetadata;
|
||||||
this.projectedProperties = projectedProperties;
|
this.projectedProperties = projectedProperties;
|
||||||
|
this.entityToRead = entityMetadata.getTableEntity().getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,7 +92,7 @@ class R2dbcQueryCreator extends RelationalQueryCreator<PreparedOperation<?>> {
|
|||||||
@Override
|
@Override
|
||||||
protected PreparedOperation<?> complete(@Nullable Criteria criteria, Sort sort) {
|
protected PreparedOperation<?> complete(@Nullable Criteria criteria, Sort sort) {
|
||||||
|
|
||||||
StatementMapper statementMapper = dataAccessStrategy.getStatementMapper().forType(entityMetadata.getJavaType());
|
StatementMapper statementMapper = dataAccessStrategy.getStatementMapper().forType(entityToRead);
|
||||||
|
|
||||||
if (tree.isDelete()) {
|
if (tree.isDelete()) {
|
||||||
return delete(criteria, statementMapper);
|
return delete(criteria, statementMapper);
|
||||||
@@ -157,7 +159,7 @@ class R2dbcQueryCreator extends RelationalQueryCreator<PreparedOperation<?>> {
|
|||||||
|
|
||||||
} else if (tree.isExistsProjection()) {
|
} else if (tree.isExistsProjection()) {
|
||||||
|
|
||||||
expressions = dataAccessStrategy.getIdentifierColumns(entityMetadata.getJavaType()).stream()
|
expressions = dataAccessStrategy.getIdentifierColumns(entityToRead).stream()
|
||||||
.map(table::column)
|
.map(table::column)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
} else if (tree.isCountProjection()) {
|
} else if (tree.isCountProjection()) {
|
||||||
@@ -165,7 +167,7 @@ class R2dbcQueryCreator extends RelationalQueryCreator<PreparedOperation<?>> {
|
|||||||
SqlIdentifier idColumn = entityMetadata.getTableEntity().getRequiredIdProperty().getColumnName();
|
SqlIdentifier idColumn = entityMetadata.getTableEntity().getRequiredIdProperty().getColumnName();
|
||||||
expressions = Collections.singletonList(Functions.count(table.column(idColumn)));
|
expressions = Collections.singletonList(Functions.count(table.column(idColumn)));
|
||||||
} else {
|
} else {
|
||||||
expressions = dataAccessStrategy.getAllColumns(entityMetadata.getJavaType()).stream()
|
expressions = dataAccessStrategy.getAllColumns(entityToRead).stream()
|
||||||
.map(table::column)
|
.map(table::column)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user