Skip to content

Commit 7020aca

Browse files
committed
Polishing.
Simplify data access exception handling using `DataAccessUtils`. See #2317
1 parent 78bf003 commit 7020aca

1 file changed

Lines changed: 3 additions & 20 deletions

File tree

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

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@
2525
import java.util.function.BiFunction;
2626
import java.util.stream.Stream;
2727

28-
import org.apache.commons.logging.Log;
29-
import org.apache.commons.logging.LogFactory;
3028
import org.jspecify.annotations.Nullable;
3129

32-
import org.springframework.dao.EmptyResultDataAccessException;
30+
import org.springframework.dao.support.DataAccessUtils;
3331
import org.springframework.data.domain.Pageable;
3432
import org.springframework.data.domain.Sort;
3533
import org.springframework.data.mapping.PersistentPropertyPath;
@@ -73,8 +71,6 @@
7371
@SuppressWarnings("SqlSourceToSinkFlow")
7472
public class DefaultDataAccessStrategy implements DataAccessStrategy {
7573

76-
private final Log logger = LogFactory.getLog(getClass());
77-
7874
private final SqlGeneratorSource sqlGeneratorSource;
7975
private final RelationalMappingContext context;
8076
private final JdbcConverter converter;
@@ -276,7 +272,6 @@ public <T> void acquireLockById(Object id, LockMode lockMode, Class<T> domainTyp
276272
public <T> void acquireLockAll(LockMode lockMode, Class<T> domainType) {
277273

278274
String acquireLockAllSql = sql(domainType).getAcquireLockAll(lockMode);
279-
280275
operations.getJdbcOperations().query(acquireLockAllSql, ResultSet::next);
281276
}
282277

@@ -296,11 +291,7 @@ public long count(Class<?> domainType) {
296291
String findOneSql = sql(domainType).getFindOne();
297292
SqlIdentifierParameterSource parameter = parametersFactory.forQueryById(id, domainType);
298293

299-
try {
300-
return operations.queryForObject(findOneSql, parameter, getRowMapper(domainType));
301-
} catch (EmptyResultDataAccessException e) {
302-
return null;
303-
}
294+
return DataAccessUtils.singleResult(operations.query(findOneSql, parameter, getRowMapper(domainType)));
304295
}
305296

306297
@Override
@@ -410,15 +401,7 @@ public <T> List<T> findAll(Class<T> domainType, Pageable pageable) {
410401

411402
@Override
412403
public <T> Optional<T> findOne(Query query, Class<T> domainType) {
413-
414-
PreparedQuery operation = prepareQuery(domainType, query, SqlGenerator::selectByQuery);
415-
416-
try {
417-
// TODO
418-
return Optional.ofNullable(operations.queryForObject(operation.sql(), operation, getRowMapper(domainType)));
419-
} catch (EmptyResultDataAccessException e) {
420-
return Optional.empty();
421-
}
404+
return DataAccessUtils.optionalResult(findAll(query, domainType));
422405
}
423406

424407
@Override

0 commit comments

Comments
 (0)