2525import java .util .function .BiFunction ;
2626import java .util .stream .Stream ;
2727
28- import org .apache .commons .logging .Log ;
29- import org .apache .commons .logging .LogFactory ;
3028import org .jspecify .annotations .Nullable ;
3129
32- import org .springframework .dao .EmptyResultDataAccessException ;
30+ import org .springframework .dao .support . DataAccessUtils ;
3331import org .springframework .data .domain .Pageable ;
3432import org .springframework .data .domain .Sort ;
3533import org .springframework .data .mapping .PersistentPropertyPath ;
7371@ SuppressWarnings ("SqlSourceToSinkFlow" )
7472public 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