Skip to content

Commit 9536eb7

Browse files
committed
Review findings.
1 parent b174ffc commit 9536eb7

File tree

3 files changed

+39
-20
lines changed

3 files changed

+39
-20
lines changed

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/JdbcAggregateTemplate.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -775,13 +775,10 @@ public T mapRow(ResultSet resultSet, int rowNumber) throws SQLException {
775775

776776
T object = super.mapRow(resultSet, rowNumber);
777777

778-
if (object != null) {
778+
eventDelegate.publishEvent(() -> new AfterConvertEvent<>(object));
779779

780-
eventDelegate.publishEvent(() -> new AfterConvertEvent<>(object));
781-
782-
if (entityCallbacks != null) {
783-
return entityCallbacks.callback(AfterConvertCallback.class, object);
784-
}
780+
if (entityCallbacks != null) {
781+
return entityCallbacks.callback(AfterConvertCallback.class, object);
785782
}
786783

787784
return object;

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/aot/JdbcCodeBlocks.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.springframework.data.repository.query.parser.Part;
4848
import org.springframework.data.support.PageableExecutionUtils;
4949
import org.springframework.data.util.Pair;
50+
import org.springframework.data.util.ReflectionUtils;
5051
import org.springframework.javapoet.CodeBlock;
5152
import org.springframework.javapoet.CodeBlock.Builder;
5253
import org.springframework.javapoet.TypeName;
@@ -591,8 +592,7 @@ public CodeBlock build() {
591592
String resultSetExtractor = null;
592593

593594
if (rowMapperClass != null) {
594-
builder.addStatement("$T $L = new $T()", RowMapper.class, rowMapper,
595-
rowMapperClass);
595+
builder.addStatement("$T $L = new $T()", RowMapper.class, rowMapper, rowMapperClass);
596596
} else if (StringUtils.hasText(rowMapperRef)) {
597597
builder.addStatement("$T $L = getRowMapperFactory().getRowMapper($S)", RowMapper.class, rowMapper,
598598
rowMapperRef);
@@ -697,24 +697,23 @@ private CodeBlock update(Builder builder, Class<?> returnType) {
697697

698698
String result = context.localVariable("result");
699699

700-
if (returnType == Void.TYPE || returnType == Void.class) {
701-
702-
builder.addStatement("getJdbcOperations().update($L, $L)", queryVariableName, parameterSourceVariableName);
703-
704-
if (returnType == Void.class) {
705-
builder.addStatement("return null");
706-
}
700+
builder.add("$[");
707701

708-
return builder.build();
702+
if (!ReflectionUtils.isVoid(returnType)) {
703+
builder.add("int $L = ", result);
709704
}
710705

711-
builder.addStatement("int $L = getJdbcOperations().update($L, $L)", result, queryVariableName,
712-
parameterSourceVariableName);
706+
builder.add("getJdbcOperations().update($L, $L)", queryVariableName, parameterSourceVariableName);
707+
builder.add(";\n$]");
713708

714709
if (returnType == boolean.class || returnType == Boolean.class) {
715710
builder.addStatement("return $L != 0", result);
716711
} else if (returnType == Long.class) {
717712
builder.addStatement("return (long) $L", result);
713+
} else if (ReflectionUtils.isVoid(returnType)) {
714+
if (returnType == Void.class) {
715+
builder.addStatement("return null");
716+
}
718717
} else {
719718
builder.addStatement("return $L", result);
720719
}
@@ -728,8 +727,8 @@ private CodeBlock delete(Builder builder, String rowMapper, String result, TypeN
728727
builder.addStatement("$T $L = getRowMapperFactory().create($T.class)", RowMapper.class, rowMapper,
729728
context.getRepositoryInformation().getDomainType());
730729

731-
builder.addStatement("$T $L = ($T) getJdbcOperations().query($L, $L, new $T<>($L))", List.class, result,
732-
List.class, queryVariableName, parameterSourceVariableName, RowMapperResultSetExtractor.class, rowMapper);
730+
builder.addStatement("$1T $2L = ($1T) getJdbcOperations().query($3L, $4L, new $5T<>($6L))", List.class, result,
731+
queryVariableName, parameterSourceVariableName, RowMapperResultSetExtractor.class, rowMapper);
733732

734733
builder.addStatement("$L.forEach(getOperations()::delete)", result);
735734

@@ -742,6 +741,10 @@ private CodeBlock delete(Builder builder, String rowMapper, String result, TypeN
742741
builder.addStatement("return !$L.isEmpty()", result);
743742
} else if (returnType == Long.class) {
744743
builder.addStatement("return (long) $L.size()", result);
744+
} else if (ReflectionUtils.isVoid(returnType)) {
745+
if (returnType == Void.class) {
746+
builder.addStatement("return null");
747+
}
745748
} else {
746749
builder.addStatement("return $L.size()", result);
747750
}

spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/aot/TestJdbcAotRepositoryContext.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,18 @@
1616
package org.springframework.data.jdbc.repository.aot;
1717

1818
import java.lang.annotation.Annotation;
19+
import java.util.Collection;
20+
import java.util.List;
1921
import java.util.Set;
22+
import java.util.function.Consumer;
2023

2124
import org.jspecify.annotations.Nullable;
2225

2326
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
2427
import org.springframework.core.annotation.MergedAnnotation;
2528
import org.springframework.core.env.Environment;
2629
import org.springframework.core.env.StandardEnvironment;
30+
import org.springframework.data.aot.AotTypeConfiguration;
2731
import org.springframework.data.jdbc.repository.support.SimpleJdbcRepository;
2832
import org.springframework.data.relational.core.mapping.Table;
2933
import org.springframework.data.repository.config.AotRepositoryContext;
@@ -123,6 +127,21 @@ public Set<Class<?>> getResolvedTypes() {
123127
return Set.of(User.class);
124128
}
125129

130+
@Override
131+
public Set<Class<?>> getUserDomainTypes() {
132+
return Set.of();
133+
}
134+
135+
@Override
136+
public void typeConfiguration(Class<?> type, Consumer<AotTypeConfiguration> configurationConsumer) {
137+
138+
}
139+
140+
@Override
141+
public Collection<AotTypeConfiguration> typeConfigurations() {
142+
return List.of();
143+
}
144+
126145
public void setBeanFactory(ConfigurableListableBeanFactory beanFactory) {
127146
this.beanFactory = beanFactory;
128147
}

0 commit comments

Comments
 (0)