diff --git a/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryQuery.java b/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryQuery.java index a8543801..362176f3 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryQuery.java +++ b/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryQuery.java @@ -26,6 +26,7 @@ import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; * method. * * @author Jens Schauder + * @author Kazuki Shimizu */ class JdbcRepositoryQuery implements RepositoryQuery { @@ -57,6 +58,7 @@ class JdbcRepositoryQuery implements RepositoryQuery { if (queryMethod.isCollectionQuery() || queryMethod.isStreamQuery()) { return context.getTemplate().query(query, parameters, rowMapper); } else { + try { return context.getTemplate().queryForObject(query, parameters, rowMapper); } catch (EmptyResultDataAccessException e) { diff --git a/src/test/java/org/springframework/data/jdbc/repository/query/QueryAnnotationHsqlIntegrationTests.java b/src/test/java/org/springframework/data/jdbc/repository/query/QueryAnnotationHsqlIntegrationTests.java index 4b606a5f..243e7c91 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/query/QueryAnnotationHsqlIntegrationTests.java +++ b/src/test/java/org/springframework/data/jdbc/repository/query/QueryAnnotationHsqlIntegrationTests.java @@ -15,12 +15,6 @@ */ package org.springframework.data.jdbc.repository.query; -import static org.assertj.core.api.Assertions.*; - -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; - import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -39,21 +33,29 @@ import org.springframework.test.context.junit4.rules.SpringClassRule; import org.springframework.test.context.junit4.rules.SpringMethodRule; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + import static org.assertj.core.api.Assertions.*; /** * Tests the execution of queries from {@link Query} annotations on repository methods. * * @author Jens Schauder + * @author Kazuki Shimizu */ @ContextConfiguration @Transactional public class QueryAnnotationHsqlIntegrationTests { - @Autowired DummyEntityRepository repository; + @Autowired + DummyEntityRepository repository; - @ClassRule public static final SpringClassRule classRule = new SpringClassRule(); - @Rule public SpringMethodRule methodRule = new SpringMethodRule(); + @ClassRule + public static final SpringClassRule classRule = new SpringClassRule(); + @Rule + public SpringMethodRule methodRule = new SpringMethodRule(); @Test // DATAJDBC-164 public void executeCustomQueryWithoutParameter() { @@ -65,8 +67,8 @@ public class QueryAnnotationHsqlIntegrationTests { List entities = repository.findByNameContainingCapitalLetter(); assertThat(entities) // - .extracting(e -> e.name) // - .containsExactlyInAnyOrder("Example", "EXAMPLE"); + .extracting(e -> e.name) // + .containsExactlyInAnyOrder("Example", "EXAMPLE"); } @@ -80,18 +82,17 @@ public class QueryAnnotationHsqlIntegrationTests { List entities = repository.findByNamedRangeWithNamedParameter("a", "c"); assertThat(entities) // - .extracting(e -> e.name) // - .containsExactlyInAnyOrder("b"); + .extracting(e -> e.name) // + .containsExactlyInAnyOrder("b"); } @Test // DATAJDBC-172 public void executeCustomQueryWithReturnTypeIsOptional() { - DummyEntity dummyEntity = dummyEntity("a"); - repository.save(dummyEntity); + repository.save(dummyEntity("a")); - Optional entity = repository.findByIdWithReturnTypeIsOptional(dummyEntity.id); + Optional entity = repository.findByNameAsOptional("a"); assertThat(entity).map(e -> e.name).contains("a"); @@ -160,8 +161,8 @@ public class QueryAnnotationHsqlIntegrationTests { Stream entities = repository.findAllWithReturnTypeIsStream(); assertThat(entities) // - .extracting(e -> e.name) // - .containsExactlyInAnyOrder("a", "b"); + .extracting(e -> e.name) // + .containsExactlyInAnyOrder("a", "b"); } @@ -185,7 +186,8 @@ public class QueryAnnotationHsqlIntegrationTests { private static class DummyEntity { - @Id Long id; + @Id + Long id; String name; }